0

我在 asp.net gridview 中使用 radcombobox。我使用了 radcombobox 的 ItemTemplate 标记,在其中放置了一个复选框,用于多选记录我的标记是

<telerik:RadComboBox TabIndex="2" ID="rcbDept" runat="server" 
         EmptyMessage="--Select Department--"
         AllowCustomText="true" EnableScreenBoundaryDetection="false" 
         Width="100px" EnableTextSelection="false"
         Filter="Contains" Height="200" OnClientDropDownClosed="DropDownClosed"
         OnClientFocus="ClientFocus">
         <ItemTemplate>
             <asp:CheckBox runat="server" ID="chk1" onclick="onCheckBoxClick(this)" 
                  Text='<%# DataBinder.Eval(Container.DataItem, "dept_name") %>' />
         </ItemTemplate>
  </telerik:RadComboBox>

我在EmptyDataTemplate EditTemplate& FooterTemplateof中使用过这个Gridview

我正在填充Combobox事件RowCreated

protected void gv1_RowCreated(object sender, GridViewRowEventArgs e)
{
     int a = 0;
     RadComboBox rcbDept1 = (RadComboBox)e.Row.FindControl("rcbDept");
     if (rcbDept1 != null)
     {
        if (rcbDept1.Items.Count == 0)
        {
           rcbDept1.DataSource = obj.FillRcbDepartment(a);
           rcbDept1.DataTextField = "dept_name";
           rcbDept1.DataValueField = "dept_cd";
           rcbDept1.DataBind();
        }
     }
  }

我的问题是,如果部门中有 5 条记录,它会被复制并combobox填充 10 条记录。我在哪里错了请建议。

4

1 回答 1

2

尝试删除函数调用

rcbDept1.DataBind();

我不太了解dataBind,但我知道databind 会在其数据源更改时(即添加或删除新项目)保持您的控件更新。

希望我的回答对你有所帮助。

于 2013-09-06T05:41:38.730 回答