我使用ASP.NET和C#来设计gridview。 gridview有两个绑定字段(NAME和CODE)和一个模板下拉列表(PAY)字段。
使用数据库DB1填充Gridview,它返回NAME,CODE和PAY。我能够按预期获取这些值,并填充gridview的NAME和CODE字段。
<asp:BoundField DataField="NAME" HeaderText="NAME"
SortExpression="NAME" />
<asp:BoundField DataField="CODE" HeaderText="CODE" SortExpression="CODE" />
<asp:TemplateField HeaderText="PAY" SortExpression="PAY">
<ItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" DataTextField="CODE" DataValueField="CODE"
OnSelectedIndexChanged="DropDownList_SelectedIndexChanged" AutoPostBack="True" AppendDataBoundItems="true">
<asp:ListItem Text="Choose New Value"></asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
模板Dropdownlist的可能值列表使用从其他DataSource DB2获取的数据进行绑定。我能够获取这些值并成功填充下拉列表。
我的要求是gridview的数据库DB1查询返回的PAY字段应该最初设置为下拉列表的默认值。
请在这方面帮助我。
谢谢
答案 0 :(得分:0)
您可以使用GridView1_RowDataBound事件来处理此
void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1");
if (ddl != null)
{
ListItem li = ddl.Items.FindByText(DataBinder.Eval(e.Row.DataItem, "CODE").ToString());
if (li != null)
li.Selected = true;
}
}
}