Asp.net 如何在代码隐藏文件中查找repeater控件的HtmlInputCheckBox,而不使用runat=";服务器";标签

Asp.net 如何在代码隐藏文件中查找repeater控件的HtmlInputCheckBox,而不使用runat=";服务器";标签,asp.net,Asp.net,在repeater中我有一个html复选框,现在我想访问代码隐藏文件中的这个复选框,以检查复选框是否被选中。但是我不想使用runat=“server”标记,我如何才能像上面那样在我的代码中这样做呢 <input id="cbfdgroup" class="checkitem" type="checkbox" name="fd_cb_group[]" value='<%#Eval("FoodItemsUid") %>'> 但这是一个错误,因为对象引用未设置为对象的实例。

在repeater中我有一个html复选框,现在我想访问代码隐藏文件中的这个复选框,以检查复选框是否被选中。但是我不想使用runat=“server”标记,我如何才能像上面那样在我的代码中这样做呢

 <input id="cbfdgroup" class="checkitem" type="checkbox" name="fd_cb_group[]" value='<%#Eval("FoodItemsUid") %>'>

但这是一个错误,因为对象引用未设置为对象的实例。。我应该如何在代码隐藏文件中获得此控件而不使用runat=“server”标记我不相信您所要求的是可能的
runat=server
是使控件可用于代码隐藏的原因。如果删除该属性,您的代码就不会以任何方式意识到该控件

再解释一下:


codebehind在服务器上执行。因此,您要在codebehind中访问的任何控件必须具有
runat=server
,才能可用。这两者是不可分割的。

这是不可能的。要澄清的是,
runat=“server”
部分正在做它所说的事情。这意味着该控件应可供服务器使用和访问


代码隐藏中的代码是在服务器上运行/由服务器执行的代码。因此,从逻辑上讲,如果服务器无法使用该控件,则代码无法对其进行操作(因此,当它也不会在intellisense中显示时)。

您不需要从repeater读取项目

假设您正在向服务器发送回发(http post)

您可以通过以下方式读取所选复选框:

string x = Request["fd_cb_group[]"];
它大于1,它将用逗号分隔,只需使用split命令获取所选值的字符串列表

整个事情会是这样的:

        protected void Button1_Click(object sender, EventArgs e)
    {
        string x = Request["fd_cb_group[]"];

        string[] allSelectedOnes = x.Split(',');

        foreach(string item in allSelectedOnes)
        {
            //your custom code for the selected checkboxes
        }
    }

为什么不想使用runat=“server”?原因是什么?假设你能控制代码隐藏,你就能访问aspx页面了?还是我遗漏了什么?@dougajmcdonald请看我的答案。:)@Jeff我知道将控件提供给服务器端代码之间的逻辑关系,纯粹是想问OP为什么他们会有“不可能”的印象@dougajmcdonald,我认为这是针对我的。OP在哪里说不可能?复选框。。这样就可以通过我的jquery代码访问它。。因此,在使用仅带有runat属性的复选框之后,我将获得一些值。。我可以在代码隐藏文件中检查是否已检查..谢谢大家对我的问题的回答是的,这在技术上是可行的。然而,它抛弃了asp.net带来的大量功能。当asp.net问世时,它最大的好处之一就是我们不再需要手动解析响应对象。SouthShoreAK,下面的代码帮助Suresh完成了想做的事情,如果他要在已经存在的回发上使用,他仍然可以在他的Web表单应用程序中使用而不受影响(保持viewstate、抽象请求、响应…)关键是,如果你仔细使用它,你仍然可以同时使用这两个世界复选框。。这样就可以通过我的jquery代码访问它。。因此,在使用仅带有runat属性的复选框之后,我将获得一些值。。我可以在代码隐藏文件中检查是否选中。感谢您对我的问题做出的所有响应。添加runat标记不应阻止您的复选框使用jquery…复选框。。这样就可以通过我的jquery代码访问它。。因此,在使用仅带有runat属性的复选框之后,我将获得一些值。。我可以在代码隐藏文件中检查是否已检查..谢谢大家对我的问题做出的回复
        protected void Button1_Click(object sender, EventArgs e)
    {
        string x = Request["fd_cb_group[]"];

        string[] allSelectedOnes = x.Split(',');

        foreach(string item in allSelectedOnes)
        {
            //your custom code for the selected checkboxes
        }
    }