如何访问html表td值到codebehind?

时间:2015-11-30 06:07:08

标签: c# html asp.net

使用jquery我将gridview值附加到表中。 如何在后面的代码中读取动态创建的td值。

我的jquery代码是

 $(function () {
        SetEmptyMessage();
        $("[id*=cbSelect]").on("click", function () {
            var selected = $('[id$=gvCompanyListing] tr td input[type=checkbox]:checked');
            if (selected.length > 0) {
                $(selected).each(function () {
                    var appendRow = $(this).closest('tr').clone(true);
                    var row = $(this).closest('tr');
                    $(row).remove();
                    $("[id$=tblAssigned]").append(appendRow);
                });
                SetEmptyMessage();
                return false;
            }
            else {
                var selected = $('[id$=tblAssigned] tr td input[type=checkbox]:not(:checked)');
                if (selected.length > 0) {
                    $(selected).each(function () {
                        var appendRow = $(this).closest('tr').clone(true);
                        var row = $(this).closest('tr');
                        $(row).remove();
                        $("[id$=gvCompanyListing]").append(appendRow);
                    });
                }
                SetEmptyMessage();
                return false;
            }
        });
    });

    function SetEmptyMessage() {
        if ($('[id$=tblAssigned] td').closest('tr').length == 0) {
            //var colspan = $('[id$=gvAssigned] th').length;
            //$('[id$=tblAssigned]').append('<tr class="empty"><td colspan=' + colspan + '>No records were found</td></tr>');
        } else {
            $('[id$=tblAssigned]').find('.empty').remove();
        }

        if ($('[id$=gvCompanyListing] td').closest('tr').length == 0) {
            //var colspan = $('[id$=gvCompanyListing] th').length;
            //$('[id$=gvCompanyListing]').append('<tr class="empty"><td colspan=' + colspan + '>No records were found</td></tr>');
        } else {
            $('[id$=gvCompanyListing]').find('.empty').remove();
        }
    }

我的aspx代码是

<asp:GridView ID="gvCompanyListing" runat="server" AutoGenerateColumns="False" ShowHeader="False" GridLines="None" >
   <Columns>
       <asp:TemplateField>
           <ItemTemplate>
               <asp:CheckBox ID="cbSelect" CssClass="gridCB" runat="server" ItemStyle-Width="10%"></asp:CheckBox>
           </ItemTemplate>
       </asp:TemplateField>
       <asp:BoundField DataField="client_name" SortExpression="CompanyInfo" ItemStyle-Width="92%" ItemStyle-Height="1px" ControlStyle-CssClass="companyInfo">
       </asp:BoundField>
   </Columns>
</asp:GridView>
<table id="tblAssigned" runat="server">
</table>

我背后的代码,

protected void btnRequestAccess_Click(object sender, EventArgs e)
{
try{
    System.Text.StringBuilder strBuild = new System.Text.StringBuilder();
    string strUserName = Session["UserName"].ToString();
    int nUserName = strUserName.Length;
    int nRemaing = nUserName - 21;
    //string strActualName = strUserName.Substring(21, nRemaing);
    strBuild.Append("Request to set Clients to Hays user " + strUserName + "\n");
    int nval = 0;        
    for (int i = 0; i <= this.tblAssigned.Rows.Count; i++){                 
        HtmlTable td = (HtmlTable)tblAssigned.FindControl("companyInfo");
        if (td != null){  
            strBuild.Append(tblAssigned.Items[i].Text.ToString()+"\n")
            nval = nval + 1;
            }
        }
    }
}

如何将tblAssigned值作为代码后面的文本获取。我做错了什么?

 for (int i = 0; i < tblAssigned.Rows.Count; i++)
        {
         for (int j = 0; j < tblAssigned.Rows[i].Cells.Count; j++)
         {
             string cellValue= tblAssigned.Rows[i].Cells[j].InnerHtml;
          // do something here
         }
       }

我们可以像这样访问,但代码不会进入j循环

1 个答案:

答案 0 :(得分:3)

在回发后,您无法访问在服务器端javascript中分配的值

您可以使用隐藏字段控制在客户端将表数据存储在其中,一旦页面回发,您将能够从隐藏字段控制中检索服务器端的值。

e.g。

定义一个javacript全局变量,用于将行数插入javascript数组

var counter = 0;

创建一个javascript数组

var arr = [];

在创建的新行上

在数组中插入一个javascript对象

arr [counter] = {/ *您想在服务器端访问的行数据* /};

hiddenField.Value = arr;

在服务器端按钮单击事件从隐藏字段中获取值