复选框无法在asp.net和HTML混合页面中工作

时间:2014-01-31 15:32:10

标签: c# html asp.net webforms

我正在努力解决网站是asp.net/C#的问题,但.aspx页面上的控件是HTML,如果我将所有内容更改为asp.net控件,我不确定它会有多好。这种变化也很小。我的任务是添加一个复选框,如<input type="checkbox" name="disableFeatureManager" runat="server" id="disableFeatureManager" />Disable Feature Manager和.cs页面中我想检查是否选中该框并根据该框做出决定,但控件的checked属性始终为false 。提交按钮也是一个HTML控件:<input type="submit" value="Start" name="submitButton" />

Page_Load ckecking中,如果这样的检查返回false。

if (disableFeatureManager != null && disableFeatureManager.Checked)
    nextURL.Append(FeatureManagerChoices.CreateQueryStringFromFormData(Request.Form));

2 个答案:

答案 0 :(得分:1)

您可以通过执行以下操作将复选框保留为Html服务器控件:

<input type="checkbox" name="disableFeatureManager" runat="server" id="disableFeatureManager" />

然后您可以将按钮更改为Web控件,如下所示:

<asp:Button ID="submitStart" runat="server" OnClick="btn1_Click" Text="Start" ClientIDMode="Static" />

与上面呈现的HTML的唯一区别将是输出的名称,但由于submitStart是静态的,您将拥有ClientIdMode的ID,如果您需要友好的一致ID, javascript操作。

要在事件中连接,请添加此代码,该代码将从复选框中读取值:

    protected void btn1_Click(object sender, EventArgs e)
    {
        var isChecked = disableFeatureManager.Checked;
    }

Checked image

答案 1 :(得分:0)

正如我之前提到的,我被置于MVC的深处。同事提供了一个简单的答案(至少在这种情况下):

bool isChecked = false;
if(Request["disableFeatureManager"] != null)
    isChecked = (Request["disableFeatureManager"].ToLower() == "on");

if (!isChecked)
    nextURL.Append(FeatureManagerChoices.CreateQueryStringFromFormData(Request.Form));

我认为这可以进一步简化为一个IF语句。