【问题标题】:How to populate a gridview dropdown dynamically depending on another column's value?如何根据另一列的值动态填充 gridview 下拉列表?
【发布时间】:2013-09-23 20:59:07
【问题描述】:

我有一个包含 3 列的网格视图:State(绑定字段)、Code(绑定字段)和 ChangeCode(下拉列表)。 ChangeCode 字段的目的是更改特定状态的 Code 的值。适用于每个州的代码列表不同。

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

状态和代码字段是从一个数据源获取的。我无法使用包含当前记录的 State 值的查询从不同的数据源获取 ChangeCode 下拉值。这是因为我无法在运行时解析当前 gridview 的行。任何关于如何实现这一点的想法将不胜感激......

【问题讨论】:

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


    【解决方案1】:

    您可以使用 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();
    
            }
    
         }
    

    【讨论】:

    • 非常感谢 Hiren。我会试试看。我对这个事件有疑问。 RowDataBound 事件何时触发?不是在整行的数据获取后触发吗?
    • 否 为绑定的每一行数据触发此事件。
    猜你喜欢
    • 1970-01-01
    • 2016-07-26
    • 2017-03-19
    • 2012-10-20
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    相关资源
    最近更新 更多