动态生成代码如下:
for(int y=0; y<4; y++)
{
    CheckBox chk = new CheckBox();
    chk.ID = "CHK" + Convert.ToChar('A' + y).ToString();
    chk.InputAttributes.Add("value", Convert.ToChar('A' + y).ToString());
}生成的结果如下:
<input id="CHKA" type="checkbox" name="CHKA" value="A" />
<input id="CHKB" type="checkbox" name="CHKB" value="B" />
<input id="CHKC" type="checkbox" name="CHKC" value="C" />
<input id="CHKD" type="checkbox" name="CHKD" value="D" />我现在想要的结果是id属性不一样,name属性一致,如下:
<input id="CHKA" type="checkbox" name="CHK" value="A" />
<input id="CHKB" type="checkbox" name="CHK" value="B" />
<input id="CHKC" type="checkbox" name="CHK" value="C" />
<input id="CHKD" type="checkbox" name="CHK" value="D" />请问该如何生成?chk.InputAttributes.Add("name", "CHK");
不管用,这样input 会有两个name属性.
<input id="CHKA" type="checkbox" name="CHKA" value="A" name="CHK" />

解决方案 »

  1.   


                    CheckBox chk = new CheckBox();
                    chk.ID = "CHK" + Convert.ToChar('A' + y).ToString();
                    chk.InputAttributes["Name"] = "CHK";
                    chk.InputAttributes.Add("value", Convert.ToChar('A' + y).ToString());
      

  2.   

    谢谢楼上这位兄弟,已经试过了,还是不行,仍旧有两个name属性
      

  3.   

    “放过”name,寻找与asp.net兼容的程序写法。或者,不要使用CheckBox控件,一切使用html手工打造。
      

  4.   

    服务器端的ID并非对应HTML中的id,而ClientID才是对应HTML中的id,不过ClientID是不能直接受你控制的。这样做是因为,在ASP.NET中ID可能出现重复的情况,为了保证id的唯一性,所以ClientID是由ASP.NET引擎控制生成的。
      

  5.   

    呵呵,没有追求过这方面的细节,不过我觉得要控制可能会比较难,还不如自己去生成html来的现实
      

  6.   

    如果要想达到你的效果,有两种方法第一 写一个来统一实现一个name的控件
    第二 直接生成input控件,不要使用CheckBox
      

  7.   

    这种情况要么用html表单元素,要么写一个html控件
      

  8.   


    for(int y=0; y <4; y++) 

        CheckBox chk = new CheckBox(); 
        chk.ID = "CHKA" + Convert.ToChar(y).ToString(); 
       
      

  9.   

    查了很多资料,也看了设计源码我个人认为只能是重写CheckBox
    或者不用此方法来实现你想要的结果了可以参考:
    http://forums.microsoft.com/china/ShowPost.aspx?PostID=3294792&SiteID=15