【问题标题】:Set Html Checkbox checked from code behind without runat=server在没有 runat=server 的情况下从后面的代码中检查设置 Html Checkbox
【发布时间】:2014-08-04 17:09:44
【问题描述】:

我的 aspx 页面中有复选框:

<input type="checkbox" name="daySelectors" value="monday"/>
<input type="checkbox" name="daySelectors" value="tuesday"/>
<input type="checkbox" name="daySelectors" value="wednesday"/>

我没有使用 CheckBoxList 控件,因为这些复选框位于我的 html 中的不同区域,我只需要选定复选框的值。 现在,我可以使用

获取选定复选框的值
String dayselector = Request.Form["daySelectors"];

到这里为止一切正常。问题是如何从后面的代码(即我的 aspx.cs 页面)中检查复选框。场景是当我来到这个页面时,我有默认需要检查的复选框值。我如何使用这些值来做到这一点。 想到的一种方法是我可以从传递值的.cs 触发 jquery/Javascript 函数。在这种情况下,我如何设置使用 jquery 中的值检查的复选框。

【问题讨论】:

  • 如果你想要来自.cs的所有东西,为什么要使用jQuery/javascript标签?
  • 您似乎在使用 ASP.NET 而不是使用它来解决您的问题?为什么没有 runat="server"?如果你决定这些应该只是客户端,那么你需要使用 jQuery 或客户端的东西来绑定和更新。
  • 我在 .cs 中有值,但我可以从 .cs 中触发 jquery/Javascript 函数,传入值。在那种情况下,我如何设置使用它们的值检查的复选框
  • @Marius 我只是想避免所有复选框的 if(checkbox.checked){ then pick value}
  • 您仍然可以访问 Request.Form[] 值,或通过服务器端控件 (checkbox.checked) 获取值。

标签: c# javascript jquery asp.net checkbox


【解决方案1】:

你不能。如果控件不是runat=server,则您无法在后面的代码中访问它。

【讨论】:

【解决方案2】:

如果您绝对不想要 runat="server" (但我认为您不想使用它的原因可能是基于一种误解),您总是可以在您的 Page 类中拥有一些自定义属性,然后抽取属性(如“选择”)直接进入您的复选框标记......

 <input type="checkbox" selected="<%=SelectedAttribute%>" .... />

【讨论】:

    【解决方案3】:

    最后,我使用 .cs 文件从我的 .cs 文件中调用了一个 Javascript 方法

    ScriptManager.RegisterClientScriptBlock(this, typeof(string), "uniqueKey","SetCheckBox('sunday');",true)
    

    以及传入需要检查的 CheckBox 值的 JavaScript 方法:

    function SetCheckBox(value) {
            $("input:checkbox[value=" + value + "]").attr("checked", true);
        }
    

    【讨论】:

      【解决方案4】:

      在复选框标签中:

      在代码隐藏中:

          protected void Page_Load(object sender, EventArgs e)
          {
              if (IsPostBack)
              {
                  try
                  {
                      if (Request.Form["Archived"].ToString() == "1")
                      {
                          Session["checkboxstate"] = " checked='checked' ";
                      }
                  }
                  catch (Exception eee)
                  {
                      Session["checkboxstate"] = "";
                  }
              }
          }
      

      为我工作。

      【讨论】:

        猜你喜欢
        • 2012-06-09
        • 2012-03-11
        • 2013-12-03
        • 1970-01-01
        • 1970-01-01
        • 2018-10-28
        • 2011-12-22
        • 2016-02-11
        • 2016-11-17
        相关资源
        最近更新 更多