Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET从codebehind中EditItemTemplate中的DropDownList获取值_C#_Asp.net - Fatal编程技术网

C# ASP.NET从codebehind中EditItemTemplate中的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") %>' /&

我有一个GridView,我把它放在DropDownList的两列中

 <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事件?这与此问题有点不同。如果有更多的背景,我可能会有所帮助。