我可以通过 webService 调用获取网格视图的渲染 html 吗?
Posted
技术标签:
【中文标题】我可以通过 webService 调用获取网格视图的渲染 html 吗?【英文标题】:Can I obtain the rendered html of a gridview via webService call? 【发布时间】:2012-01-20 20:30:54 【问题描述】:是否有一个简单的调用 webService 方法来重新绑定一个 asp.Net GridView 控件并返回其呈现的 html,以便我可以刷新页面上包含 gridview 的区域?
我可以使用 jQuery.Load,但在服务器端如何获取特定控件的渲染块?
谢谢
【问题讨论】:
【参考方案1】:您可以在 web 方法中执行类似的操作。
GridView gv = new GridView();
gv.AutoGenerateColumns = true;
//Your Logic to fill dataset/datatable
DataTable dt=new DataTable();
dt.Columns.Add(new DataColumn("Index"));
dt.Columns.Add(new DataColumn("Name"));
for(int i=0;i<10;i++)
DataRow row=dt.NewRow();
row["Index"]=i;
row["Name"]="dummyData"+i.ToString();
dt.Rows.Add(row);
//bind the gridview
gv.DataSource = dt;
gv.DataBind();
//get the rendered HTML
StringBuilder sb = new StringBuilder();
StringWriter writer=new StringWriter(sb);
HtmlTextWriter txt = new HtmlTextWriter(writer);
gv.RenderControl(txt);
return sb.ToString();
【讨论】:
【参考方案2】:您可以使用 Gridview.RenderControl() 方法。
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
GridView2.RenderControl(htmlWrite);
public override void VerifyRenderingInServerForm(Control control)
// Confirms that an HtmlForm control is rendered for the
// specified ASP.NET server control at run time.
// No code required here.
【讨论】:
以上是关于我可以通过 webService 调用获取网格视图的渲染 html 吗?的主要内容,如果未能解决你的问题,请参考以下文章