【问题标题】:Is it possible to add `static ` type to gridview binding method in asp.net是否可以将`static`类型添加到asp.net中的gridview绑定方法
【发布时间】:2017-10-24 18:38:15
【问题描述】:

这里我有一个图像标签,当我单击图像时我需要在网格视图中显示数据这里我从 javascript 调用 .cs 方法,当我在绑定网格视图中将方法带到 static 时,它会显示错误消息。

[WebMethod]
    public static void BindHeader() 

    {
        Grdview.Visible = true;
        Grdview.DataSource = ds.Tables[0];
        Grdview.DataBind();
    }

错误

An object reference is required for the non-static field, method, or property '_Default.Grdview'

【问题讨论】:

  • 这永远行不通。 Grdview 和数据绑定需要完整的页面生命周期,而该生命周期无法通过调用 web 方法获得。你必须重新设计你的方法。

标签: javascript c# asp.net gridview


【解决方案1】:

您不能访问static 方法中的任何控件,因为每个控件都是一个实例。如果你想通过这种方法绑定网格视图,你最好从WebMethod返回字符串,并在Ajax请求的success处理程序上创建网格视图。

【讨论】:

    【解决方案2】:

    您可以动态/以编程方式构建 GridView 控件。然后在您的 WebMethod 中,您可以调用 RenderControl() 方法来检索呈现的 GridView 控件的 HTML 内容。从 WebMethod 返回该内容,并让回调 JavaScript 函数将 HTML 内容注入占位符元素的 innerHTML 属性。

    另一种选择是在客户端进行数据绑定。因此,WebMethod 所要做的就是传回数据(不包括表现性标记),例如以 JSON 类型的格式。然后,您可以使用诸如 javascript 模板之类的东西来呈现带有数据的网格。这种方法完全不考虑 GridView 控件,但根据您的需要,它可能是一个可行的选择。

    【讨论】:

    • 您可以在客户端调用webservice来检索数据。在webservice的回调函数中,可以使用javascript在gridview上进行绑定。检查这个:forums.asp.net/t/1422932.aspx
    猜你喜欢
    • 2010-09-22
    • 2020-02-12
    • 2021-06-30
    • 2020-01-17
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 2011-03-12
    相关资源
    最近更新 更多