我正在尝试从日历中选择的日期重新加载网格视图。
我知道SO上有重复的问题,但他们的答案对我不起作用
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
Label1.Text = Calendar1.SelectedDate.ToShortDateString();
DataSet ds = dlObj.FillDataSet("SELECT top 5 [DName], [bloodGroup], [dateDonated] FROM [tblDonors] ORDER BY [dateDonated] DESC ", "tblDonors");
GridView2.DataSource = ds;
GridView2.DataBind();
}
方法FillDataSet()就是这个
public DataSet FillDataSet(string q, string tableName)
{
DataSet ds = new DataSet();
try
{
SqlDataAdapter da = new SqlDataAdapter(q, thisConnection);
da.Fill(ds, tableName);
return ds;
}
catch (Exception)
{
return ds;
}
}
当我点击任何日期时,会发生此错误
Both DataSource and DataSourceID are defined on 'GridView2'. Remove one definition.
答案 0 :(得分:4)
DataSourceID="ds"
从后面的代码添加数据源时不需要这样做。
答案 1 :(得分:2)
虽然一般来说,你应该真的决定是设计侧数据源还是使用代码,但有时可能会更好地使用两者。在使用代码中欺骗一点的一种方法:
grid.DataSourceID = null;
grid.DataSource = dataTable;
grid.DataBind();
答案 2 :(得分:0)
在Calendar1_SelectionChanged
中,您只需致电
GridView2.DataBind()
并处理你想要在
中做的任何事情DataSourceID_Selecting
事件通过更新e.Result