我有以下代码:
<div id="tableWrapper">
<div id="tableScroll">
<table runat="server" id="surveyTable">
<tr>
<th>URL</th>
<th>Used</th>
</tr>
</table>
</div>
</div>
<div id="tableFooter">
<div>
<a href="#" id="btnExport" onclick="fnExcelReport()">Export</a>
</div>
<div>
<input type="button" runat="server" id="btnUpdate" onserverclick="btnUpdate_ServerClick" value="Update" />
</div>
</div>
我在C#中添加行(每行一个URL和一个复选框),页面渲染后,用户点击复选框,完成后点击“更新”按钮。然后我们转到一些代码,这些代码应该查看每一行,如果单击了复选框,则从每个URL获取一些数据。
问题是,当我单击按钮时,HTML页面上只有一行,即行。这是回发的问题,我试图用UpdatePanel来解决这个问题,但到目前为止还没有成功。我添加了
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="false">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
</ContentTemplate>
<triggers>
<asp:asyncpostbacktrigger controlid="btnUpdate" EventName="ServerClick" />
</triggers>
</asp:UpdatePanel>
开始和结束但没有快乐。当我用这个测试时,AJAX确实在页面上工作:
ScriptManager sm = ScriptManager.GetCurrent(Page)
if (sm == null)
{
// ASP.NET AJAX functionality is not enabled for the page.
}
else
{
// AJAX functionality is enabled for the page.
}
有人可以建议为什么这不起作用吗?
添加HTML行的代码
foreach (var s in surveys)
{
HtmlTableRow row = new HtmlTableRow();
surveyTable.Rows.Add(row);
HtmlTableCell urlCell = new HtmlTableCell();
urlCell.InnerHtml = "url/Survey/" + s.stuff_id + "/" + s.stuff2_id + "/" + s.stuff3_id + "/";
HtmlTableCell checkBoxCell = new HtmlTableCell();
checkBoxCell.InnerHtml = "<input type=\"checkbox\" name=\"used\" " + (s.used == "Y" ? "checked" : "") + " >";
row.Cells.Add(urlCell);
row.Cells.Add(checkBoxCell);
}