gpt4 book ai didi

c# - 返回一个用ajax写入的HtmlTable

转载 作者:行者123 更新时间:2023-12-02 20:46:40 25 4
gpt4 key购买 nike

我想以编程方式在Web服务的代码后面构建一个HtmlTable/Table,并将其作为HTML字符串返回,以便可以使用JavaScript将其写入span/div/whatever的innerhtml

类似于以下内容:

//webservice.amsx.cs Build the table, called by another/different method
protected string Table_Maker()
{
HtmlTable tbl = new HtmlTable();
HtmlTableCell cell = new HtmlTableCell();
HtmlTableRow row = new HtmlTableRow();
cell.InnerText = "WhateverText";
row.Cells.Add(cell);
tbl.Rows.Add(row);

return tbl.ToString();
}

//somepage.aspx write table to the div
function menuHelper(toplayer, toplayernumber)
{
var sublayertable;
var sublayerpostcompileID;
var toplayernumber;

menuHelper_Part1();

function menuHelper_Part1()
{

//replace ucMainMenu with ucMainMenu_pnlContent
sublayerpostcompileID = toplayer.replace("ucMainMenu", "ucMainMenu_pnlContent");
//Call the webmethod
webbernetz.MenuHelperWebService.Sub_Menu_Helper(toplayernumber, menuHelper_Part2);
}

function menuHelper_Part2(result){
//Write the result to the target area
document.getElementById(sublayerpostcompileID).innerHTML = result;
}
}

当我将其返回给 javascript 时,javascript 只会写入“System.Web.UI.HtmlControls.HtmlTable”。

如何让它编写实际的表格?

最佳答案

代码的唯一问题是使用tbl.ToString()

正如其他一些帖子中所述,您应该使用 HtmlTextWriter 将表格控件渲染StringBuilder 对象,然后该对象可以返回您的方法的字符串值。像这样的事情:

protected string Table_Maker() {
HtmlTable tbl = new HtmlTable();
HtmlTableCell cell = new HtmlTableCell();
HtmlTableRow row = new HtmlTableRow();
cell.InnerText = "WhateverText";
row.Cells.Add(cell);
tbl.Rows.Add(row);

StringBuilder sb = new StringBuilder();
using( StringWriter sw = new StringWriter( sb ) ) {
using( HtmlTextWriter tw = new HtmlTextWriter( sw ) ) {
tbl.RenderControl( tw );
}
}
return sb.ToString();
}

这应该返回要插入到您的页面中的 HTML。

关于c# - 返回一个用ajax写入的HtmlTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1038278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com