如何根据另一列的值动态填充gridview下拉列表?

时间:2013-09-18 22:34:28

标签: c# asp.net gridview drop-down-menu datasource

我有一个包含3列的gridview:State(绑定字段),Code(绑定字段)和ChangeCode(下拉列表)。 ChangeCode字段的目的是更改特定状态的代码值。适用于每个州的守则清单不同。

我有一张表,其中列出了状态列表及其当前代码。我还有一个表,其中列出了每个州的允许代码。我希望更改代码下拉列表动态显示适用于当前记录的所有允许代码。我在C#中使用ASP.NET。

从一个数据源获取State和Code字段。我无法使用包含当前记录的State值的查询从其他数据源获取ChangeCode下拉列值。这是因为我无法在运行时解析当前gridview的行。关于如何实现这一点的任何想法将非常感谢....

1 个答案:

答案 0 :(得分:0)

您可以使用Gridview的RowDataBound事件,并在此事件中为特定状态绑定ChangeCode下拉列表。

     void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
     {
       DataRowView drv = (DataRowView)e.Row.DataItem; 
        if(e.Row.RowType == DataControlRowType.DataRow)
      {
         String State = drv["StateColumnName"].ToString();
      //Now You Have State So You Can Get All Code Values By State Name
         DataTable dtcodes = GetByState();
      //Now Bind This Code To DropDownList Of Codes
        DropDownList dropdownCodes = (DropDownList)e.Row.FindControl("dropdownCodes");
        dropdownCodes.DataSource = dtcodes;
        dropdownCodes.DataBind();

        }

     }