我有一个gridview
列,在进入编辑模式时有下拉列表:
<asp:TemplateField HeaderText="genre" SortExpression="genre">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList2" runat="server"
DataSourceID="SqlDataSource1" DataTextField="name" DataValueField="name">
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("genre") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
现在我想把它带到UpdateParameters
的{{1}}:
SqlDataSource
但是当我按下时他给我错误信息
<UpdateParameters>
<asp:ControlParameter ControlID="DropDownList2" Type="string" PropertyName="SelectedValue" Name="genre" />
</UpdateParameters>
知道为什么吗?
答案 0 :(得分:1)
DropDownList2是位于Grid下的嵌套控件;因此,您的SqlDataSource控件在所有DropDownList2上都没有可见性。
您可以尝试使用Updating事件分配后面代码的值:
protected void SqlDataSource_Updating(object sender, SqlDataSourceCommandEventArgs e)
{
e.Command.Parameters["@genre"].Value = GetDropDownListValue();
}
注意:您需要在GetDropDownListValue()中使用FindControl(“DropDownList2”)