在后面的代码中访问动态创建的html复选框

时间:2016-03-09 13:33:06

标签: javascript c# jquery html asp.net

我在运行时使用像这样的javascript / jquery动态创建我的html复选框。它使用的是Jquery bootgrid。

 isAssigned: function (column, row) {
                    if (row.isAssigned == "True" || row.isAssigned == "true") {
                        return "<input id='chk" + row.id + "' type='checkbox' name='chkMarks' checked='" + row.isAssigned + "' />";
                    }
                    else {
                        return "<input id='chk" + row.id + "' type='checkbox' name='chkMarks'/>";
                    }
                }

我需要做的是以某种方式获取后面的aspx.cs代码中的提交按钮单击事件中的值。我无法逃避=&#34;服务器&#34;这些控件是因为在页面加载之前不会添加id。我需要得到身份证,以及他们是真还是假。

我想知道是否有人知道让我获得这些价值的最佳方法。

    protected void myTester_Click(object sender, EventArgs e)
    {
        var values = Request["chkMarks"].ToString();
    }

3 个答案:

答案 0 :(得分:0)

你几乎拥有它!您需要使用Request.Form而不仅仅是Request。这应该可以让您访问所有DOM元素。

var values = Request.Form["chkMarks"].ToString();

以下是有关它的更多信息:https://msdn.microsoft.com/en-us/library/system.web.httprequest.form(v=vs.110).aspx

答案 1 :(得分:0)

Request.Unvalidated [“chkMarks”]

也可能有用,具体取决于该字段的值。

答案 2 :(得分:0)

我最后使用JSON使用回发来做到这一点,所以不是异步的,希望对某人有用。

   function BuildJSON() {
        var jsonObj = [];
        jQuery("input[name='chkMarks']").each(function () {
            item = {}
            item["id"] = this.id;
            item["isAssigned"] = this.checked;
            jsonObj.push(item);
        });
        var json = JSON.stringify(jsonObj);
        $('#<%= hiddenMarksID.ClientID %>').val(json);
     }

在后面的代码中,我将一个事件附加到按钮并选择了JSON,就像这样......

  protected void btnSubmitMarks_Click(object sender, EventArgs e)
    {
        string json = hiddenMarksID.Value;
        List<ChkMark> chkMark = new JavaScriptSerializer().Deserialize<List<ChkMark>>(json);

这是POCO ......

 public class ChkMark
{
    public string id { get; set; }
    public bool isAssigned { get; set; }
}