C#取动态生成的CheckBox

后台创建控件代码:StringBuilderTitleOne=newStringBuilder();TitleOne.Append("<inputid=\"Checkbo... 后台创建控件代码:
StringBuilder TitleOne = new StringBuilder();
TitleOne.Append("<input id=\"Checkbox1\" value=\"1\" text=\"123\" runat=\"server\" type=\"checkbox\"/>");
前台:
<asp:Panel ID="PanelPaperCreate" runat="server">
<div>
<% =TitleOne %>
</div>
</Panel>

请问在后台如何找到这个生成的CheckBox,如果选中如何找到Text值或Value值。
再加20分,请测试成功后贴出代码。功能:如果选中,取出text或value的值,如果没选中,不处理。谢谢各位!
展开
 我来答
dkxpsg
推荐于2016-11-15 · TA获得超过1628个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:1046万
展开全部

给你推荐两种方法,一种是向服务器容器控件里添加子控件(即向runat=server的控件的Controls里添加控件),第二种是就是你的这种拼接HTML的方法不过这种方法必须设置控件的name属性,然后在Request.Form["控件的name"]里获得控件的值,推荐使用第一种方法,更直观一些,第二种无法记录提交以后的状态,代码如下

第一种

后台

using System.Web.UI.HtmlControls;

 protected void Page_Load(object sender, EventArgs e)

    {

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

        {

            HtmlInputCheckBox htmlInputCheckBox = new HtmlInputCheckBox();//这里用CheckBox也是一样的

            htmlInputCheckBox.ID = "check" + i;

            Container.Controls.Add(htmlInputCheckBox);

        }

    }

    protected void Button1_Click(object sender, EventArgs e)

    {

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

        {

            Label1.Text += "<br/>" + (Container.FindControl("check" + i) as HtmlInputCheckBox).Checked.ToString();

        }

    }

前台

<form id="form1" runat="server">

    <div id="Container" runat="server">

    </div>

    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

    <asp:Label ID="Label1" runat="server"></asp:Label>

    </form>

第二种

后台

 public string GetCheckBox()

    {

        return "<input name=\"Checkbox1\" type=\"checkbox\"/>";//这里必须设置name,Id没有用

    }

    protected void Button1_Click(object sender, EventArgs e)

    {

        if (Request.Form["Checkbox1"] == null)//如果Checkbox1为未选中状态Request.Form["Checkbox1"]值为null

        {

            Label1.Text += "<br/>Fasle";

        }

        else//如果Checkbox1为选中状态Request.Form["Checkbox1"]值为on

        {

            Label1.Text += "<br/>True";

        }

    }

前台

<form id="form1" runat="server">

    <div>

        <%=GetCheckBox() %>

    </div>

    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

    <asp:Label ID="Label1" runat="server"></asp:Label>

    </form>

龙的传人1988
2010-07-17 · TA获得超过193个赞
知道小有建树答主
回答量:418
采纳率:0%
帮助的人:114万
展开全部
看了一下,因为你这个控件是在后台拼串出来了,而且是客户端的控件。。所以不能在后台直接取出来所以。可以用click方法来处理。
在页面上用一个checkBox的服务器控件,但是将它隐藏了。设置ID为:checkF
用一个隐藏域ID为:hide。绑定你要取的值。
在JavaScript中添加函数:
当点击提交的时候调用checkF.click()。
这样就可以调用到后台去了,而且还可以得到hide的值。试试看吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
高山之澍93
2010-07-17 · TA获得超过237个赞
知道小有建树答主
回答量:83
采纳率:0%
帮助的人:103万
展开全部
document.getElementById('<%=Checkbox1.ClientID%>')
可以去到该checkbox对象.

然后在去text就挺容易了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yaobing0687
2010-07-17 · TA获得超过988个赞
知道小有建树答主
回答量:1309
采纳率:0%
帮助的人:903万
展开全部
document.getElementById(“Checkbox1”);在前台用js代码获取,之后存到一个Hidden控件中。之后再在后台调用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zh...8@21cn.com
2010-07-17 · 超过10用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:32.4万
展开全部
request["Checkbox1"]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式