2016-05-23 42 views
0

我想填补一个GridView这样的:GridView.DataBind()难度

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

在同一个cs文件,我只用gridView.DataBind();,和它的作品。 我想知道DataBind()方法是如何引用数据源的?

+0

你能更具体?一旦你设置了数据源,你不需要重新设置它,所以如果你想重新绑定网格,你可以调用'DataBind'。网格保留对原始源的引用, –

回答

1

你在哪里调用仅DataBind方法实际上没有做,因为网格视图中已经有DataSource任何区别,当你调用这个函数再次与现有的数据源

绑定它时,你甚至称这条线的地方一旦在页面

gridView.DataSource = dTable; 

它指定数据源的网格视图和DataBind方法的任何后续调用将网格结合具有相同已经加载的数据。

+0

如果'gridView.DataSource = null'会怎么样? – Divyesh

+0

如果你只写了这行'gridView.DataSource = null',它将不会有任何影响,但是如果你在这行之后调用'DataBind',它将会重置网格并且会因为没有数据而将其清空。 –

+0

好的,谢谢你的回应。 – Divyesh

0

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

您可以在您的代码的一个部分中定义您的DataSource并将其绑定到另一个部分,因为您将控件的源定义为控件(您的GridView)以及DataBind最终调用的时间是全部处理到输出和事件如RowCreated被解雇。

1

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

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

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

我希望这是你想知道的。

0

私人无效bindGrid(数据表dTable) { 尝试 {

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