C# ASP.NET从codebehind中EditItemTemplate中的DropDownList获取值
我有一个GridView,我把它放在DropDownList的两列中C# ASP.NET从codebehind中EditItemTemplate中的DropDownList获取值,c#,asp.net,C#,Asp.net,我有一个GridView,我把它放在DropDownList的两列中 <asp:TemplateField HeaderText="Upgrade" SortExpression="Upgrade"> <ItemTemplate> <asp:Label ID="LabelUpgrade" runat="server" Text='<%# Eval("Upgrade") %>' /&
<asp:TemplateField HeaderText="Upgrade" SortExpression="Upgrade">
<ItemTemplate>
<asp:Label ID="LabelUpgrade" runat="server" Text='<%# Eval("Upgrade") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlUpgrade" runat="server" Width="100px">
<asp:ListItem Value="1">--Select--</asp:ListItem>
<asp:ListItem Value="2">1</asp:ListItem>
<asp:ListItem Value="3">2</asp:ListItem>
<asp:ListItem Value="4">3</asp:ListItem>
<asp:ListItem Value="5">4</asp:ListItem>
<asp:ListItem Value="6">5</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
RowUpdate事件-我可以在此处获取行,但无法将值添加到sql参数,因为e.command在此处无效
protected void gvClients_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow _row = gvClients.Rows[e.RowIndex];
DropDownList _ddl = (DropDownList)_row.FindControl("ddlUpgrade");
SqlParameter _parm = new SqlParameter("@Upgrade", _ddl.SelectedItem.ToString());
}
在RowUpdate事件中,您可以根据编辑模板的ID捕获该控件
GridViewRow row = GridView1.Rows[e.RowIndex];
DropDownList ddl = (DropDownList)row.FindControl("ddlUpgrade");
SqlParameter _parm = new SqlParameter("@Upgrade", ddl.SelectedItem.ToString());
e.Command.Parameters.Add(_parm);
在RowUpdate事件中,您可以根据编辑模板的ID捕获该控件
GridViewRow row = GridView1.Rows[e.RowIndex];
DropDownList ddl = (DropDownList)row.FindControl("ddlUpgrade");
SqlParameter _parm = new SqlParameter("@Upgrade", ddl.SelectedItem.ToString());
e.Command.Parameters.Add(_parm);
我会在GridView之外添加一个隐藏字段:
<asp:HiddenField ID="hdnSelection" value="" runat="server" />
我的IAP_更新方法应该如下所示:
protected void IAP_Updating(object sender, SqlDataSourceCommandEventArgs e)
{
SqlParameter _parm = new SqlParameter("@Upgrade", hdnSelection.Value);
e.Command.Parameters.Add(_parm);
}
我没有测试代码。您可能需要调整。我会在GridView之外添加一个隐藏字段:
<asp:HiddenField ID="hdnSelection" value="" runat="server" />
我的IAP_更新方法应该如下所示:
protected void IAP_Updating(object sender, SqlDataSourceCommandEventArgs e)
{
SqlParameter _parm = new SqlParameter("@Upgrade", hdnSelection.Value);
e.Command.Parameters.Add(_parm);
}
我没有测试代码。您可能需要调整。ddlNewUpdate在哪里?好吧,那么第一个我抓取了错误的下拉列表,第二个,我如何在codebehind中从ddlUpgrade中抓取项目?ddlNewUpdate在哪里?好吧,第一个我抓取了错误的下拉列表,第二个,如何从codebehind中的ddlUpgrade中获取该项?RowUpdating GridViewUpdateEventArgs e不包含e.Commands您可以粘贴整个OnRowUpdating方法吗?OnUpdating事件只有SqlDataSourceCommandEventArgs e,我无法从中提取该行以查找dropdownlist,但这是我添加sqlparameters的地方。RowUpdateIning事件具有GridViewUpdateEventArgs,我可以从中提取行,但它不能添加SqlParameters作为附加到SqlDataSource的OnUpdate事件?这与此问题有点不同。如果有更多的上下文,我可能会有所帮助。RowUpdating GridViewUpdateEventArgs e不包含e.Commands您可以粘贴整个OnRowUpdating方法吗?OnUpdating事件只有SqlDataSourceCommandEventArgs e,我无法从中提取行以查找dropdownlist,但这是我添加sqlparameters的地方。RowUpdateIning事件具有GridViewUpdateEventArgs,我可以从中提取行,但它不能添加SqlParameters作为附加到SqlDataSource的OnUpdate事件?这与此问题有点不同。如果有更多的背景,我可能会有所帮助。