设置Html复选框从代码后选中,没有runat=server

Set Html Checkbox checked from code behind without runat=server

本文关键字:没有 runat server 复选框 Html 代码 设置      更新时间:2023-09-26

我在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文件中调用了一个Javascript方法
ScriptManager.RegisterClientScriptBlock(this, typeof(string), "uniqueKey","SetCheckBox('sunday');",true)

和传递给需要检查的CheckBox值的JavaScript方法:

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

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

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

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

在复选框标签中:

后面的代码:

    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"] = "";
            }
        }
    }