在服务器端的RadComboBox ItemTemplate中访问控件

时间:2013-08-22 05:39:16

标签: c# asp.net gridview telerik radcombobox

我使用RadComboBox进行多项选择,因为我在RadComboBox的ItemTemplate中使用了复选框和隐藏字段,这个RadComboBox在一个网格内,我的标记如下

<asp:TemplateField HeaderText="RESPONSIBLE DEPARTMENT" HeaderStyle-HorizontalAlign="Left">
                                                <EditItemTemplate>
                                                    <telerik:RadComboBox TabIndex="2" ID="rcbDept" runat="server" EmptyMessage="--Select Department--"
                                                        AllowCustomText="true" EnableScreenBoundaryDetection="false" Width="100px" EnableTextSelection="false"
                                                        Filter="Contains" OnClientDropDownClosed="DropDownClosed" OnClientFocus="ClientFocus">
                                                        <ItemTemplate>

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

                                                            <asp:CheckBox runat="server" ID="chk1" onclick="onCheckBoxClick(this)" Text='<%# DataBinder.Eval(Container.DataItem, "dept_name") %>' />
                                                            <asp:HiddenField ID="hdnColumn" runat="server" />
                                                        </ItemTemplate>
                                                    </telerik:RadComboBox>
                                                </FooterTemplate>
                                                <ItemTemplate>
                                                    <%# Eval("dept_name")%>
                                                </ItemTemplate>
                                                <HeaderStyle HorizontalAlign="Left" Width="100px" />
                                                <ItemStyle HorizontalAlign="Left" Width="100px" />
                                                <FooterStyle HorizontalAlign="Left" Width="100px" />
                                            </asp:TemplateField>

此部分位于gridview的列标记内 我无法在服务器端访问Radcombobox的itemtemplate的隐藏控件值 任何帮助都会非常值得一提。 在此先感谢!!! ....

2 个答案:

答案 0 :(得分:0)

尝试喜欢这个,

 foreach (GridViewRow row in GridView1.Rows)
 {
     string _rcbDeptSelectedValue = 
     (row.FindControl("rcbDept") as RadComboBox).SelectedValue;
 }

答案 1 :(得分:0)

请尝试使用以下代码段。

GridViewRow row = GridView1.FooterRow;

    RadComboBox rcbDept = row.FindControl("rcbDept") as RadComboBox;

    foreach (RadComboBoxItem item in rcbDept.Items)
    {
        CheckBox chk1 = (CheckBox)item.FindControl("chk1");
        HiddenField hdnColumn = (HiddenField)item.FindControl("hdnColumn");

        if (chk1.Checked)
        {
            //Item checked
            string str = hdnColumn.Value;
            //Access hiddedn field vale here
        }
        else
        {
            //Item Unchecked
            string str = hdnColumn.Value;
            //Access hiddedn field vale here
        }
    }

如果有任何疑虑,请告诉我。