最近在做一个产品添加的功能,需求有点奇葩,所以在添加的时候免不了要用到动态生成控件,然后我就使用了JS去动态生成一些 checkbox类型的input标签,在以前用asp.net在后台生成的input标签都可以用request["name属性"]这样的方式在后台 获取,但是在获取JS生成的标签时,就会发生有时候可以获取到,有时候又获取不到,到现在才发现,原来是我的JS写法有问题,所以才导致这样的问题。之前 这样的问题也遇到过好几次,苦于没找到解决方法,之前都是换别的方法去完成的,如今再次遇到,倒也觉得还是想办法解决的好,下面贴出代码
前台代码:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
后台代码
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;public partial class Default2 : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { } ////// 接收方案一参数 /// /// /// protected void Button1_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(Request["chkallID"]) == false) { Response.Write(Request["chkallID"].ToString()); Response.End(); } } ////// 接收方案二参数 /// /// /// protected void Button2_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(Request["chkold"]) == false) { Response.Write(Request["chkold"].ToString()); Response.End(); } }}
方案一的写法,生成checkbox类型的input后,在后台可以接收到选中的checkbox的value,接收的时候会自动的在每个checkbox的value后面加上,逗号隔开,
方案二的写法,在后台是无法获取到动态生成的checkbox类型的input,并且,如果直接获取,还会发生异常。