Могу ли я получить визуализированный html вида grid через вызов webService?
Есть ли простой вызов метода webService, который перепривязывает элемент управления asp.Net GridView и возвращает его визуализированный html, чтобы я мог обновить область, которая содержит gridView на странице?
Я могу использовать jQuery.Load, но на стороне сервера, как я могу получить блок визуализации определенного элемента управления?
Спасибо
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.
}
Вы можете сделать что-то подобное в веб-методе.
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();