ASPnet如何將數(shù)據(jù)庫里的值讀到下拉列表框?
可以!
把打算下拉的那列變成模板列(TemplateField),在模板列中拖入下拉框,這個最好用IDE完成,完成之后看前臺源碼如下:(這是我的程序片段)
<asp:TemplateFieldHeaderText="三級模板">
<ItemStyleHorizontalAlign="Center"VerticalAlign="Middle"Width="100px"/>
<ItemTemplate>
<asp:DropDownListID="DDLContent"runat="server"DataTextField="模板名稱"DataValueField="模板編號"AutoPostBack="True"OnSelectedIndexChanged="DDLContent_SelectedIndexChanged">
</asp:DropDownList>
<asp:LabelID="LbtopicID"runat="server"Visible="False"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
在后臺要做兩件事,1是把數(shù)據(jù)庫中的數(shù)據(jù)綁定到下拉框,2是當下拉框被選擇時程序要做出的反應(yīng):
1.把數(shù)據(jù)庫中的數(shù)據(jù)綁定到下拉框
protectedvoidGridView_RowDataBound(objectsender,GridViewRowEventArgse)//該事件是自動生成
{
if(e.Row.RowType==DataControlRowType.DataRow)//如果此行是DataGrid控件數(shù)據(jù)行
{
stringtopicID=GridView.DataKeys[e.Row.RowIndex].Value.ToString();//獲取本行關(guān)鍵字的值
//***************下面是三級模板列的綁定**********************
if(((DropDownList)e.Row.FindControl("DDLContent"))!=null)//我的下拉框叫DDLContent
{
DataSetds=cd.getContentModel(topicID);//從數(shù)據(jù)庫中取得要放入下拉框的數(shù)據(jù)
DropDownListDDLContent=(DropDownList)e.Row.FindControl("DDLContent");
DDLContent.Items.Clear();
DDLContent.DataSource=cd.listModel();
DDLContent.DataBind();//綁定
if(ds.Tables[0].Rows.Count>0)//
{
DDLContent.SelectedValue=ds.Tables[0].Rows[0]["模板編號"].ToString();
}
else
{
DDLContent.Items.Insert(0,"請選擇...");//用戶沒進行選擇時顯示這行
}
}
//*****************三級模板列綁定結(jié)束************************
}
}
2.如果被綁定的下拉框被用戶選擇,那么。。。
protectedvoidDDLContent_SelectedIndexChanged(objectsender,EventArgse)
{
//下面都是我的具體業(yè)務(wù)邏輯,你把它們換成你自己的
GridViewRowGVR=(GridViewRow)((Control)sender).Parent.Parent;
DropDownListDDLC=(DropDownList)(GVR.FindControl("DDLContent"));
LabelLbtopicID=(Label)(GVR.FindControl("LbtopicID"));
cd.setContentModel(LbtopicID.Text,DDLC.SelectedValue.ToString());
}