一个 GridView,两个 DataSources
One GridView, two DataSources
因此,我使用 "wizard"(GridViewTasks-->NewDataSource)
创建了一个 GridView 和 2 个数据源
我的页面上有一个 CheckBox...当 checked=true 时,我想为我的 GridView 使用 DataSource1,当 checked=false 时,我想使用 DataSource2。
我试过在我的代码隐藏中添加 CheckBox_CheckedChanged 事件,如下所示:
protected void CheckBox_CheckedChanged(object sender, EventArgs e)
{
if (CheckBox.Checked == true)
{
gvPredbiljezbe.DataSource = dsGridView1;
gvPredbiljezbe.DataBind();
}
else
{
gvPredbiljezbe.DataSource = dsGridView2;
gvPredbiljezbe.DataBind();
}
}
但这行不通。
有什么建议么?
我知道我可以进入我的代码隐藏并完成所有工作 "manually" (SqlDataConnection->DataAdapter->DataTable->GridViewDataSource) 但是当您使用 GridView 向导和在 CheckBox 或 ButtonClick 事件上更改您的 GridView 的数据源?
谢谢
最佳
K
我曾经使用过这种技术;不要分配 DatasourceID,然后将其设置为 page_init 用于初始数据加载,然后执行:
protected void CheckBox_CheckedChanged(object sender, EventArgs e)
{
if (CheckBox.Checked == true)
{
gvPredbiljezbe.DataSourceID = dsGridView1.ID;
gvPredbiljezbe.DataBind();
}
else
{
gvPredbiljezbe.DataSourceID = dsGridView2.ID;
gvPredbiljezbe.DataBind();
}
}
类似的东西;交换数据源的 ID 没有问题(已经有一段时间了,所以我认为你使用的是 ID,而不是 ClientID 属性)。
确保为您的复选框设置 AutoPostBack="true"。
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
CheckBox checkbox = (CheckBox)sender;
if (checkbox != null)
gvPredbiljezbe.DataSourceID = checkbox.Checked ? dsGridView1.ID : dsGridView2.ID;
}
因此,我使用 "wizard"(GridViewTasks-->NewDataSource)
创建了一个 GridView 和 2 个数据源我的页面上有一个 CheckBox...当 checked=true 时,我想为我的 GridView 使用 DataSource1,当 checked=false 时,我想使用 DataSource2。
我试过在我的代码隐藏中添加 CheckBox_CheckedChanged 事件,如下所示:
protected void CheckBox_CheckedChanged(object sender, EventArgs e)
{
if (CheckBox.Checked == true)
{
gvPredbiljezbe.DataSource = dsGridView1;
gvPredbiljezbe.DataBind();
}
else
{
gvPredbiljezbe.DataSource = dsGridView2;
gvPredbiljezbe.DataBind();
}
}
但这行不通。 有什么建议么?
我知道我可以进入我的代码隐藏并完成所有工作 "manually" (SqlDataConnection->DataAdapter->DataTable->GridViewDataSource) 但是当您使用 GridView 向导和在 CheckBox 或 ButtonClick 事件上更改您的 GridView 的数据源?
谢谢
最佳
K
我曾经使用过这种技术;不要分配 DatasourceID,然后将其设置为 page_init 用于初始数据加载,然后执行:
protected void CheckBox_CheckedChanged(object sender, EventArgs e)
{
if (CheckBox.Checked == true)
{
gvPredbiljezbe.DataSourceID = dsGridView1.ID;
gvPredbiljezbe.DataBind();
}
else
{
gvPredbiljezbe.DataSourceID = dsGridView2.ID;
gvPredbiljezbe.DataBind();
}
}
类似的东西;交换数据源的 ID 没有问题(已经有一段时间了,所以我认为你使用的是 ID,而不是 ClientID 属性)。
确保为您的复选框设置 AutoPostBack="true"。
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
CheckBox checkbox = (CheckBox)sender;
if (checkbox != null)
gvPredbiljezbe.DataSourceID = checkbox.Checked ? dsGridView1.ID : dsGridView2.ID;
}