【问题标题】:How to loop through a table to see if the checkbox are checked如何遍历表格以查看复选框是否被选中
【发布时间】:2014-10-01 03:58:07
【问题描述】:

我正在尝试遍历表格以查看是否选中了复选框。在按钮单击 SendCheckEmail 被调用。我收到一个错误 EmailForm is not declared 并且我不确定如何遍历表来处理每个选中的复选框。

 Sub Page_Load
    If Request.QueryString("show") <> "" then
      dim Sr as StreamReader = New StreamReader("d:\netdrvs\prs\emaillist\" &   Request.QueryString("show"),FileMode.Open)
      output="<table id=EmailForm border=1 padding=4  >" & VBCR
      output+="<tr><td>Customer Code</td><td>Email</td><td>Invoice Number</td><td>Regarding</td><td>  <input type=checkbox name=chkHeader id=chkHeader></td></tr>"
      While Not SR.EndOfStream
      dim Temp(3) as String
      Temp = Split(SR.ReadLine(),vbTab)
      dim temp2(3) as String
      Temp2 = Split(Temp(0),"_")
      output += "<tr>" & VBCR
      output += "<td>" & Temp2(1) & "</td>" & VBCR
      output += "<td>" & Temp(1) & "</td>" & VBCR
      output += "<td>" & Temp2(0) & "</td>" & VBCR
      output += "<td>" & Temp(2) & "</td>" & VBCR
      output += "<td> <input type=checkbox name=chkRow id=chkRow> </td>" & VBCR
      output += "</tr>"& VBCR   
    End While
    output+="</table>" & VBCR   
    SR.Close()
    ProcessChk.Visible = True
   end if
End Sub

Sub SendCheckEmail (sender As Object, e As System.EventArgs) 

    Dim item 

    For each item in EmailForm 
        'loop through each row
    NEXT

End Sub

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Lathams Invoice Email Sending</title>
<script type="text/javascript" src="ajax.googleapis.js"></script>
<script type="text/javascript">
  $("[id*=chkHeader]").live("click", function () {
    var chkHeader = $(this);
    var grid = $(this).closest("table");
    $("input[type=checkbox]", grid).each(function () {
        if (chkHeader.is(":checked")) {
            $(this).attr("checked", "checked");
            $("td", $(this).closest("tr")).addClass("selected");
        } else {
            $(this).removeAttr("checked");
            $("td", $(this).closest("tr")).removeClass("selected");
        }
    });
});
$("[id*=chkRow]").live("click", function () {
    var grid = $(this).closest("table");
    var chkHeader = $("[id*=chkHeader]", grid);
    if (!$(this).is(":checked")) {
        $("td", $(this).closest("tr")).removeClass("selected");
        chkHeader.removeAttr("checked");
    } else {
        $("td", $(this).closest("tr")).addClass("selected");
        if ($("[id*=chkRow]", grid).length == $("[id*=chkRow]:checked", grid).length) {
            chkHeader.attr("checked", "checked");
        }
    }
 });
</script>
</head>
<body>
<form id="form1" runat="server">
  <asp:label id="test" runat="server" />

  <%=output%>



   <p>&nbsp;</p>
    <asp:Button id="ProcessFile" visible="false" runat="server" Text="Process Emails" onClick="SendMails" />
    <asp:Button id="ProcessChk" visible="false" runat="server" Text="Process Checked Emails" OnClick="SendCheckEmail" />

 </form>
</body>
</html>

【问题讨论】:

  • 显示您的 .aspx 页面
  • 好的!我已经重新编辑了我的问题
  • EmailForm 是哪个控件??你在用任何Repeater,GridView
  • 它只是一个表,尝试使用 GridView 但是当我尝试从文本文件中获取信息时它不喜欢它。所以我去找一张桌子
  • 已发布答案尝试一下

标签: asp.net checkbox


【解决方案1】:

runat="server" 设置为EmailForm

然后

在 C# 中

foreach (var item in tbl.Rows)
        {
            HtmlTableRow row = (HtmlTableRow)item;

            foreach (var item1 in row.Controls)
            {
                HtmlTableCell cell = (HtmlTableCell)item1;



            }
        }

在 VB.NET 中

Dim rowitem
Dim cellitem 

For Each rowitem In tbl.Rows
HtmlTableRow row = (HtmlTableRow)rowitem;


For Each cellitem In tbl.Rows
HtmlTableCell cell = (HtmlTableCell)cellitem;
// cell items

next

next


// can directly access checkbox if it is set to runat='server'

【讨论】:

    【解决方案2】:

    EmailForm 不是服务器控件,因此您无法在 CodeBehind 中访问它。

    您可以尝试使用绑定到文件内容的中继器或表格控件。

    否则,您可以将电子邮件地址添加为输入标签中的值属性。 输出 += " " & VBCR

    然后您将通过访问 Request("chkRow") 收到一个逗号分隔的电子邮件地址列表

    【讨论】:

    猜你喜欢
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 2019-01-12
    相关资源
    最近更新 更多