前台:<asp:TemplateField HeaderText="所属部门">
<ItemStyle HorizontalAlign="Left" />
<EditItemTemplate>
<asp:Label ID="lblDept" runat="server" Text='<%# Bind("Department_ID") %>'></asp:Label>
<asp:DropDownList ID="ddlDept" runat="server" DataSourceID="SqlDataSource2" DataTextField="Name" DataValueField="ID" SelectedIndex='<%# Bind("ID") %>'>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label13" runat="server" Text='<%# Eval("Department_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>detailsview绑定的是SqlDataSource1,表Employee,其中有一个字段是指向Department表的字段Department_ID
dropdownlist绑定的是SqlDataSource2,表Department,有字段ID、[Name]
后台: protected void DetailsView1_DataBound(object sender, EventArgs e)
{
if (DetailsView1.CurrentMode == DetailsViewMode.Edit)
{
Label lb = (Label)DetailsView1.FindControl("lblDept");
string index = lb.Text;
DropDownList dl = (DropDownList)DetailsView1.FindControl("ddlDept");
dl.SelectedIndex = dl.Items.IndexOf(dl.Items.FindByValue(index));
}
}
显示正常,但就是编辑时,dropdownlist不能更新为我选择的值,请问这样写有什么错?我把DetailsView放在了Updatepanel中,会不会有什么影响
<ItemStyle HorizontalAlign="Left" />
<EditItemTemplate>
<asp:Label ID="lblDept" runat="server" Text='<%# Bind("Department_ID") %>'></asp:Label>
<asp:DropDownList ID="ddlDept" runat="server" DataSourceID="SqlDataSource2" DataTextField="Name" DataValueField="ID" SelectedIndex='<%# Bind("ID") %>'>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label13" runat="server" Text='<%# Eval("Department_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>detailsview绑定的是SqlDataSource1,表Employee,其中有一个字段是指向Department表的字段Department_ID
dropdownlist绑定的是SqlDataSource2,表Department,有字段ID、[Name]
后台: protected void DetailsView1_DataBound(object sender, EventArgs e)
{
if (DetailsView1.CurrentMode == DetailsViewMode.Edit)
{
Label lb = (Label)DetailsView1.FindControl("lblDept");
string index = lb.Text;
DropDownList dl = (DropDownList)DetailsView1.FindControl("ddlDept");
dl.SelectedIndex = dl.Items.IndexOf(dl.Items.FindByValue(index));
}
}
显示正常,但就是编辑时,dropdownlist不能更新为我选择的值,请问这样写有什么错?我把DetailsView放在了Updatepanel中,会不会有什么影响
dl.SelectedIndex = dl.Items.IndexOf(dl.Items.FindByValue(index));