Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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# 如何在gridview中获取dropdownlist中的值?_C#_Asp.net_Gridview_Data Binding_Drop Down Menu - Fatal编程技术网

C# 如何在gridview中获取dropdownlist中的值?

C# 如何在gridview中获取dropdownlist中的值?,c#,asp.net,gridview,data-binding,drop-down-menu,C#,Asp.net,Gridview,Data Binding,Drop Down Menu,在gridview中有一个dropdownlist <asp:TemplateField HeaderText="Quantity"> <ItemTemplate> <asp:DropDownList ID="quantity" runat="server" DataValueField="ItemID" DataTextField="Quantity"> </asp:DropDownList> &l

在gridview中有一个dropdownlist

<asp:TemplateField HeaderText="Quantity">
    <ItemTemplate>
        <asp:DropDownList ID="quantity" runat="server" DataValueField="ItemID" DataTextField="Quantity">
        </asp:DropDownList>
    </ItemTemplate>
</asp:TemplateField>

我会在
TemplateField
中添加一个
HiddenField
来保存CartID,我会在代码中使用CartID。我的标记应该如下所示:

<asp:TemplateField HeaderText="Quantity">
    <ItemTemplate>
        <asp:DropDownList ID="quantity" runat="server" DataValueField="ItemID" DataTextField="Quantity">
        </asp:DropDownList>
    </ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Quantity">
    <ItemTemplate>  
        <asp:HiddenField ID="hdnId" runat="server" value='<%#Eval("CartID") %>'></asp:HiddenField>                            
        <asp:DropDownList ID="quantity" runat="server" DataValueField="ItemID" DataTextField="Quantity">
        </asp:DropDownList>
    </ItemTemplate>
</asp:TemplateField>
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        DropDownList quantity = e.Row.FindControl("quantity") as DropDownList;
        HiddenField hdnId = e.Row.FindControl("hdnId") as HiddenField;

        if (quantity != null && hdnId != null)
        {
            string queryString = String.Format("SELECT ItemID, Quantity FROM  CartItems  WHERE CartID= {0}", hdnId.Value);

            //MyConnectionString is your connection string in web.config
            using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ToString()))
            {
                SqlCommand command = new SqlCommand(queryString, connection);
                connection.Open();
                SqlDataReader reader = command.ExecuteReader();
                quantity.DataSource = reader;
                quantity.DataValueField = "ItemID";
                quantity.DataTextField = "Quantity";
                quantity.DataBind();               
            }
        }        

    }
}