我可以通过 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 吗?的主要内容,如果未能解决你的问题,请参考以下文章

Android:从网格视图中获取价值

webservice接口如何获取网站数据

从 TouchesMoved 获取子视图参考

我正在尝试使用此代码制作网格视图动画,但我没有使用此代码获取网格视图动画。你能帮我怎么做吗?

C#调用WebService获取天气信息

webservice接口中方法无法调用,在main方法中可以调用且没有问题,但在类方法中直接跳过,是怎么么回事?