Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用C管理jquery创建的复选框#_Javascript_Jquery_Asp.net_C# 4.0_Webforms - Fatal编程技术网

Javascript 使用C管理jquery创建的复选框#

Javascript 使用C管理jquery创建的复选框#,javascript,jquery,asp.net,c#-4.0,webforms,Javascript,Jquery,Asp.net,C# 4.0,Webforms,我的问题是: 我想使用visual studio 2010管理Web表单页面中复选框的状态,为了更好地理解我的问题,我已将代码减少到最低限度 为了动态创建复选框的状态,我尝试了几种方法: 一开始,我的愿望很简单:在代码behing中获取我的复选框的状态,这对于我来说是c#,但我很快意识到我需要将属性runat=“server”放在包含复选框状态的范围中 因此,我更改了跨度的动态声明,并将属性“id”和“runat”添加到两个跨度中的每一个。之后,在生成页面时,这些属性在代码源中是可见的,但我仍

我的问题是:

我想使用visual studio 2010管理Web表单页面中复选框的状态,为了更好地理解我的问题,我已将代码减少到最低限度

为了动态创建复选框的状态,我尝试了几种方法:

  • 一开始,我的愿望很简单:在代码behing中获取我的复选框的状态,这对于我来说是c#,但我很快意识到我需要将属性runat=“server”放在包含复选框状态的范围中
  • 因此,我更改了跨度的动态声明,并将属性“id”和“runat”添加到两个跨度中的每一个。之后,在生成页面时,这些属性在代码源中是可见的,但我仍然无法在代码隐藏中管理它们
  • 我最后尝试使用DOM函数:
    getElementById
    ,但是当我使用调试器检查时,变量总是
    null
事实上,我认为我只需要在页面完全加载时进行操作,但我不知道如何操作

我只需要知道我的复选框是开还是关。

以下是正文内容:

<body>
    <form id="form1" runat="server">
          <div class="checkbox1" id="CB1">
            <input type="checkbox" value="1"/>
          </div>     
    </form>   

    <script type="text/javascript">
        $(function () {     

            $('input[type=checkbox]').switchButton({
                button_width: 10,
                labels_placement: "left",
                height: 22,
                width: 50
            });

        })        
    </script>
</body>

$(函数(){
$('input[type=checkbox]')。开关按钮({
按钮宽度:10,
标签位置:“左”,
身高:22,
宽度:50
});
})        
jquery脚本就在那里:

特定复选框的css如下所示:


让我知道如何进行此操作。

可能您需要对代码进行异步回发,以使用新添加的元素更新页面的控件树。否则,C#无法知道您使用jQuery添加了一个元素

代码应该是这样的

    TextBox TitleTxtBox = new TextBox();
    TitleTxtBox.ID = "TitleTxtBox";

    this.Controls.Add(TitleTxtBox);
这里有一篇文章可以帮助您:

另一个可能的解决方案可能是请求request.Form来获取新添加的元素,但我不确定它是否有效。现在不能检查

  if (Request.Form["checkboxName"] != null && Request.Form["checkboxName"] == "on")
        {
            Response.Write("This checkbox is selected");
        }
        else
        {
            Response.Write("This checkbox is not selected");
        }


希望以上内容对您有所帮助。

您可以将复选框创建为asp:checkbox,然后在客户端使用clientID call
开关按钮
功能

如果您不知道需要多少复选框,那么您可以创建带有name属性的复选框,并在服务器端像这样访问它
请求[“checkBoxName”]

您可以这样做来创建许多复选框并轻松获取其值:

Dictionary<string, bool> data = new Dictionary<string, bool>();
foreach (var item in Request.Params)
{
    //code_chkId_001, true
    if (item != null && item.ToString().StartsWith("code_"))
    {
        data.Add(item.ToString().Replace("code_", "")/*chkId_001*/ ,
                Convert.ToBoolean(Request[item.ToString()]) /*true*/); 
//you have to check here, if it's "on" instead of "true" ToBoolean will break.
    }
}
字典数据=新字典();
foreach(Request.Params中的变量项)
{
//代码_chkId_001,正确
if(item!=null&&item.ToString().StartsWith(“代码”))
{
data.Add(item.ToString().Replace(“code_u”)/*chkId_001*/,,
Convert.ToBoolean(请求[item.ToString()])/*true*/);
//你必须在这里检查,如果它是“开”而不是“真”,ToBoolean将崩溃。
}
}
我知道这像是黑客攻击,但我讨厌Asp.Net的回发,主要使用AJAX。希望有帮助。

开关按钮(我开发的)不会删除或修改应用插件的初始复选框输入

因此,我建议您像在任何其他项目中一样创建复选框,并通过C#代码获取其状态


我想这是其他人已经在这里提出的建议。

您好,您能用
GetElementById
提供您的尝试吗?顺便说一句,你不需要一个
宽度后:50?嗨,谢谢你的回答,这是答案,不,我不需要
宽度后,因为这些是jQueryOk管理的switchButton的唯一参数,所以下次尝试注释中的内联链接时,因为您的链接导致错误,必须删除URL中最后一个
]
。最后,它工作了,我不明白您的switchButton没有修改初始复选框输入。我尝试了太多的方法来解释这个例子,但是我没有正确地分析开关按钮的行为,所以解决方法就是简单地放置一个
,而不是一个简单的