我有一個gridview填充形式通過sqldatasource本地sql分貝。gridview更新總是首先選擇行?
在SqlDataSource的選擇命令是:SelectCommand="SELECT * FROM [CERecord] ORDER BY [Priority]"
在我後面的代碼我有要麼顯示所有記錄,活動記錄,完成記錄的單選按鈕列表:
protected void rblShowRecords_SelectedIndexChanged(object sender, EventArgs e)
{
switch (rblShowRecords.SelectedValue)
{
case "Show Active/Completed":
CEDatabaseSource.SelectCommand = "SELECT * FROM [CERecord] ORDER BY [Priority]";
break;
case "Show Active":
CEDatabaseSource.SelectCommand = "SELECT * FROM [CERecord] WHERE [Completed]='false' ORDER BY [Priority]";
break;
case "Show Completed":
CEDatabaseSource.SelectCommand = "SELECT * FROM [CERecord] WHERE [Completed]='true' ORDER BY [Priority]";
break;
default:
break;
}
CEDatabaseSource.DataBind();
gvRecordList.DataBind();
}
我有一個奇怪的問題是,如果我嘗試更新某一行時,處於活動狀態或僅完成狀態時,它似乎只是開始顯示所有行,即使我在上面的方法中設置了新的命令。
當你點擊gridview中一行上的更新時,它是否總是運行默認的select命令:SelectCommand="SELECT * FROM [CERecord] ORDER BY [Priority]"
?
看來每次點擊更新鏈接時,它都會執行回發並運行sqldatasource的原始selectcommand,即使已經更新。 – 2013-03-14 16:40:49