我使用 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/