FineUI 官方论坛

标题: grid里两个dropdownlist的模板列实现联动 [打印本页]

作者: 会编程的唐伯虎    时间: 2016-7-28 00:01
标题: grid里两个dropdownlist的模板列实现联动
grid里有2个模板列,均为gropdownList,要实现前面一个dropdownlist列的选项值改变后,重新绑定后边一个dropdownList的绑定值
前台页面显示 和 代码如下:
[attach]9052[/attach]
  1. <Columns>
  2.                                 <f:RowNumberField />
  3.                                 <f:BoundField DataField="SEQUENCE" SortField="SEQUENCE" Width="100px" HeaderText="顺序号" />
  4.                                 <f:BoundField DataField="OPER_NAME" SortField="OPER_NAME" Width="100px" HeaderText="工序名称" />
  5.                                 <f:BoundField DataField="TotalQty" SortField="TotalQty" Width="100px" HeaderText="生产总数" />
  6.                                 <f:BoundField DataField="AssignedQty" SortField="AssignedQty" Width="100px" HeaderText="已派工数量" />
  7.                                 <f:BoundField DataField="LeftQty" SortField="LeftQty" Width="100px" HeaderText="剩余派工数量" />
  8.                                 <f:TemplateField HeaderText="分派数量" Width="100px">
  9.                                     <ItemTemplate>
  10.                                         <asp:TextBox ID="txtAssignQty" runat="server" Width="80px" TabIndex='<%# Container.DataItemIndex + 10 %>'
  11.                                             Text='<%# Eval("AssignQty") %>'></asp:TextBox>
  12.                                     </ItemTemplate>
  13.                                 </f:TemplateField>
  14.                                 <f:TemplateField Width="100px" HeaderText="分派人员">
  15.                                     <ItemTemplate>
  16.                                         <asp:DropDownList runat="server" ID="ddlUser" OnSelectedIndexChanged="ddlUser_SelectedIndexChanged">
  17.                                         </asp:DropDownList>
  18.                                     </ItemTemplate>
  19.                                 </f:TemplateField>
  20.                                 <f:TemplateField Width="100px" HeaderText="分派设备">
  21.                                     <ItemTemplate>
  22.                                         <asp:DropDownList runat="server" ID="ddlUnit" >
  23.                                         </asp:DropDownList>
  24.                                     </ItemTemplate>
  25.                                 </f:TemplateField>                                
  26.                                 <f:LinkButtonField HeaderText=" " Width="80px"  CommandName="ADD" Icon="Add" ColumnID="Grid1_ctl15" />
  27.                             </Columns>
复制代码


后台代码如下:
[attach]9053[/attach]

  1. protected void ddlUser_SelectedIndexChanged(object sender, EventArgs e)
  2.         {
  3.             System.Web.UI.WebControls.DropDownList selectUserDDL = (System.Web.UI.WebControls.DropDownList)sender;
  4.             int Index = ((GridViewRow)(selectUserDDL.NamingContainer)).RowIndex;
  5.             System.Web.UI.WebControls.DropDownList ddlUnit = (System.Web.UI.WebControls.DropDownList)Grid1.Rows[Index].FindControl("ddlUnit");
  6.             ddlUnit.Items.Clear();
  7.             string EmployeeNO = selectUserDDL.SelectedValue;
  8.             DataSet unitDS = new BLL.TBLJN_WORKUNIT_USER().GetUnitInfoByUser(EmployeeNO);
  9.             if (unitDS != null && unitDS.Tables.Count > 0)
  10.             {
  11.                 if (unitDS.Tables[0].Rows.Count > 0)
  12.                 {
  13.                     foreach (DataRow drUnit in unitDS.Tables[0].Rows)
  14.                     {
  15.                         System.Web.UI.WebControls.ListItem itemUnit = new System.Web.UI.WebControls.ListItem();
  16.                         itemUnit.Value = drUnit["ID"].ToString();
  17.                         itemUnit.Text = drUnit["WORK_UNIT_NO"].ToString() + "(" + drUnit["WORK_UNIT_NAME"].ToString() + ")";
  18.                         ddlUnit.Items.Add(itemUnit);
  19.                     }
  20.                 }
  21.                 else
  22.                 {
  23.                     Model.TBLJN_WORK_UNIT unitModel = new BLL.TBLJN_WORK_UNIT().GetModelByWorkUnitNO("other");
  24.                     if (unitModel != null)
  25.                     {
  26.                         System.Web.UI.WebControls.ListItem itemUnit = new System.Web.UI.WebControls.ListItem();
  27.                         itemUnit.Value = unitModel.ID.ToString();
  28.                         itemUnit.Text = unitModel.WORK_UNIT_NAME;
  29.                         ddlUnit.Items.Add(itemUnit);
  30.                     }
  31.                 }
  32.                 ddlUnit.SelectedIndex = 0;
  33.             }
  34.         }
复制代码


可是发现当第一个 dropdownlist值改变时,并未进入到后台的OnSelectedIndexChanged事件中去,请问这个要怎么实现呢??????

作者: zy32002    时间: 2016-7-28 08:41
实现不了,只能用js
作者: yilei163    时间: 2016-7-28 14:25
一般使用ajax来实现表格行内联动




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4