如何从SQL填充GridView下拉列表选项?

时间:2014-04-02 09:30:14

标签: c# asp.net sql gridview datagridview

这就是我想要的网格视图。

我的SQL表Pharmacy_Data包含Item_Name和Item_Code

从Pharmacy_Data表中填充Item_Code。当我从下拉列表中选择项目名称时,它应填写字段中的项目代码。

My Grid

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

1.为项目名称下拉列表设置Autopostback为true,并在下拉列表更改事件中填写获取数据(项目代码)的代码并填写项目代码

答案 1 :(得分:0)

请参阅以下Link ..这可能会对您有所帮助。在链接的示例中,他们使用直接值来使用列表填充下拉列表,而不是根据您的情况使用数据库。

答案 2 :(得分:0)

我通过向GridView添加OnRowDataBound函数解决了这个问题。

<强> OnRowDataBound = “Grid_ItemList_RowDataBound”

protected void Grid_ItemList_RowDataBound(object sender, GridViewRowEventArgs e)
    {
    Connection con = new Connection();     
    if (e.Row.RowType == DataControlRowType.DataRow)
        {

        //Find the DropDownList in the Row
        DropDownList ddlnames = (e.Row.FindControl("ddlnames") as DropDownList);
        ddlnames.DataSource = con.GetData("Select Item_Code,Item_Name from mytable");

        //TextValue Pairs of DropDown list
        ddlnames.DataTextField = "Item_Name";
        ddlnames.DataValueField = "Item_Code";
        ddlnames.DataBind();

        //Add Default Item in the DropDownList
        ddlnames.Items.Insert(0, new ListItem("Please select"));
        }        
    }

上面的代码提取了ItemNames及其各自的ItemCodes。

现在,要在选择的文本框中显示代码,我使用下面的事件作为下拉元素

<强> OnSelectedIndexChanged = “ddlnames_OnChanged”

protected void ddlnames_OnChanged(object sender, EventArgs e)
    {
    //Encapsulates the object back as a dropdown list
    DropDownList ddlnames = (DropDownList)sender;

    //Finds the control in the corresponding gridview row and edits the label
    GridViewRow row = (GridViewRow)ddlnames.NamingContainer;
    TextBox IC = (TextBox)row.FindControl("itemCode");
    IC.Text = ddlnames.SelectedValue; 
    }

嗯,这就是我必须要做的! :) 希望有一天有人觉得这很有用。