c# - 如何访问 html 表 td 值以进行代码隐藏?

标签 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循环吗

最佳答案

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

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

例如

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

变量计数器=0;

创建一个javascript数组

var = [];

在创建的新行上插入数组中的 javascript 对象

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

隐藏字段.Value = arr;

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

关于c# - 如何访问 html 表 td 值以进行代码隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33992369/

相关文章:

c# - Microsoft.SqlServer.Types : Error loading msvcr120. dll(错误代码:5)

css - 在 div 顶部显示的 block 引用

html - Bootstrap 4 : How to match cards by height AND ensure correct breakpoints?

c# - 如何在自定义服务器控件 asp 中使用 .resx 和 .resource 文件?

c# - 如何循环所有功能?

c# - WPF Sentinel 对象以及如何检查内部类型

c# - 派生类的构造函数可以比其基类的构造函数有更多的参数吗?

css - Google 样式工具栏 CSS/HTML

c# - Entity Framework - 代码优先 - 数据注释 - 不必要的外键列

javascript - 将值从 asp.net 传递给 javascript