GridView.DataBind()难度

时间:2016-05-23 12:53:00

标签: c# asp.net

我正在尝试填写这样的网格视图:

 private void BindGridView(DataTable dTable)
 {
     gridView.DataSource = dTable;
     gridView.DataBind();
 }

在同一个.cs文件中,我只使用gridView.DataBind();,它可以正常工作。 我想知道DataBind()方法如何引用数据源?

4 个答案:

答案 0 :(得分:1)

您只调用DataBind方法的地方实际上没有任何区别,因为网格视图已经有DataSource,当您调用此函数时,它再次将其与可用数据源绑定

在页面中调用此行甚至一次

gridView.DataSource = dTable;

它将数据源分配给网格视图,对DataBind方法的任何后续调用都将使用相同的已加载数据绑定网格。

答案 1 :(得分:1)

DataBind()方法用于将Source绑定到服务器控件。

DataBind()方法强制gridview与特定DataSource绑定。 由于您已经引用了DataSource,并且当您仅使用DataBind()时,它将默认采用以前的DataSource,因为它存在于内存中。

但是,大多数控件会自动执行绑定。因此,您不需要明确使用此方法。

我希望,这是你想知道的。

答案 2 :(得分:0)

DataBind仅渲染已经加载到对象中的数据源。您可以在aspx中执行其他绑定,例如<span><%#MyClass.RenderSomething()%></span>,但除非您指示它绑定(即在您的cs中page.DataBind();),否则不会发生任何事情。

您可以在代码的一个部分中定义DataSource并将其绑定到另一个部分,因为您定义了控件的源(您的GridView)以及最终调用DataBind时是将所有内容都处理为输出和事件&# 39;这样的RowCreated被解雇了。

答案 3 :(得分:0)

private void bindGrid(DataTable dTable)     {         尝试         {

            gvSmokingStatus.DataSource = dTable;
            gvSmokingStatus.DataBind();            
    }
    catch (Exception ex)
    {
        throw ex;`enter code here`
    }
}