C# GridView.DataBind()困难

C# GridView.DataBind()困难,c#,asp.net,C#,Asp.net,我正在尝试这样填充gridview: private void BindGridView(DataTable dTable) { gridView.DataSource = dTable; gridView.DataBind(); } gvSmokingStatus.DataSource = dTable; gvSmokingStatus.DataBind(); } catch (

我正在尝试这样填充gridview:

 private void BindGridView(DataTable dTable)
 {
     gridView.DataSource = dTable;
     gridView.DataBind();
 }
            gvSmokingStatus.DataSource = dTable;
            gvSmokingStatus.DataBind();            
    }
    catch (Exception ex)
    {
        throw ex;`enter code here`
    }
}
在同一个.cs文件中,我只使用
gridView.DataBind(),它可以工作。

我想知道
DataBind()
方法是如何引用数据源的?

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

            gvSmokingStatus.DataSource = dTable;
            gvSmokingStatus.DataBind();            
    }
    catch (Exception ex)
    {
        throw ex;`enter code here`
    }
}
当你在页面上打一次电话时

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

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

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

            gvSmokingStatus.DataSource = dTable;
            gvSmokingStatus.DataBind();            
    }
    catch (Exception ex)
    {
        throw ex;`enter code here`
    }
}
当你在页面上打一次电话时

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

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

DataBind仅呈现已加载到对象中的数据源。您可以在aspx中执行其他绑定,例如
,但除非您指示它进行绑定,否则不会发生任何事情(即在cs中执行
page.DataBind();

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

您可以在代码的一个部分中定义数据源,并在另一个部分中绑定它,因为您可以将源定义到控件(GridView)最后调用DataBind时,所有数据都被处理到输出中,并且事件的此类
行已创建
被激发。

DataBind仅呈现已加载到对象中的数据源。您可以在aspx中执行其他绑定,例如
,但除非您指示它进行绑定,否则不会发生任何事情(即在cs中执行
page.DataBind();

            gvSmokingStatus.DataSource = dTable;
            gvSmokingStatus.DataBind();            
    }
    catch (Exception ex)
    {
        throw ex;`enter code here`
    }
}
您可以在代码的一个部分中定义数据源,并将其绑定到另一个部分中,这是因为您将源定义到控件(您的GridView),而最终调用DataBind的时间是当所有数据都被处理到输出中,并且事件的此类
行已创建
被激发。

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

            gvSmokingStatus.DataSource = dTable;
            gvSmokingStatus.DataBind();            
    }
    catch (Exception ex)
    {
        throw ex;`enter code here`
    }
}
方法强制gridview与特定数据源绑定。 由于您已经引用了数据源,并且仅使用DataBind()时,默认情况下它将采用上一个数据源,因为它位于内存中

            gvSmokingStatus.DataSource = dTable;
            gvSmokingStatus.DataBind();            
    }
    catch (Exception ex)
    {
        throw ex;`enter code here`
    }
}
但是,大多数控件自动执行绑定。因此,您不需要显式地使用此方法

            gvSmokingStatus.DataSource = dTable;
            gvSmokingStatus.DataBind();            
    }
    catch (Exception ex)
    {
        throw ex;`enter code here`
    }
}
我希望,这就是您想要知道的。

DataBind()方法用于将源代码绑定到服务器控件

            gvSmokingStatus.DataSource = dTable;
            gvSmokingStatus.DataBind();            
    }
    catch (Exception ex)
    {
        throw ex;`enter code here`
    }
}
方法强制gridview与特定数据源绑定。 由于您已经引用了数据源,并且仅使用DataBind()时,默认情况下它将采用上一个数据源,因为它位于内存中

            gvSmokingStatus.DataSource = dTable;
            gvSmokingStatus.DataBind();            
    }
    catch (Exception ex)
    {
        throw ex;`enter code here`
    }
}
但是,大多数控件自动执行绑定。因此,您不需要显式地使用此方法

            gvSmokingStatus.DataSource = dTable;
            gvSmokingStatus.DataBind();            
    }
    catch (Exception ex)
    {
        throw ex;`enter code here`
    }
}
我希望,这是您想要知道的。

私有void bindGrid(DataTable dTable)
            gvSmokingStatus.DataSource = dTable;
            gvSmokingStatus.DataBind();            
    }
    catch (Exception ex)
    {
        throw ex;`enter code here`
    }
}
{ 尝试 {

            gvSmokingStatus.DataSource = dTable;
            gvSmokingStatus.DataBind();            
    }
    catch (Exception ex)
    {
        throw ex;`enter code here`
    }
}
私有void bindGrid(数据表dTable) { 尝试 {

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

你能更具体一点吗?一旦你设置了数据源,你就不需要再设置它,所以如果你想重新绑定网格,你可以调用
DataBind
。网格保留了对原始源的引用,你能更具体一点吗?一旦你设置了数据源,你就不需要再设置它,所以你可以调用
DataBind
如果您想重新绑定网格。网格保留对原始源的引用,如果
gridView.DataSource=null
?如果您只写这一行
gridView.DataSource=null
,它将没有影响,但是如果您在这一行之后调用
DataBind
,它将重置网格,并将清空它,因为没有数据。如果
gridView.DataSource=null
?如果您只写这一行
gridView.DataSource=null
,它将不起作用,但是如果您在这一行之后调用
DataBind
,它将重置网格,并将清空它,因为没有数据。