2016-05-18 64 views
0

所以,我一直在使用「嚮導」一個GridView和2個數據源創建(GridViewTasks - > NewDataSource)一個GridView控件,二數據源

我當...檢查=我的頁面上的一個複選框真的,我想爲我的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(); 

    } 
} 

但是,這是行不通的。 有什麼建議嗎?我知道我可以在我的代碼隱藏,並「手動」(SqlDataConnection-> DataAdapter-> DataTable-> GridViewDataSource)做到這一切,但是有沒有辦法當你用GridView嚮導創建你的DataSources和CheckBox或ButtonClick事件改變你的GridView的DataSource的?

由於

最佳

ķ

+0

你能不能請註明您的問題喜歡什麼不工作,是產生一些錯誤或複選框更改事件完全不打或一切順利不錯,但數據未顯示在gridview的呢? –

回答

0

確保爲您的複選框設置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; 
} 
+0

謝謝user1111這個工作就像一個魅力:)最好的問候 – TDKZG

0

我以前使用這種技術;不分配的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屬性)。