1
我想要的刷新類型並不涉及數據本身。如何強制刷新GridView?
這裏的情景: 我有3列A,B和C 一個GridView控件,用戶可以點擊複選框a,b和c鍵使相應的列可見或不可見。 [要清楚,這些複選框位於gridview外部。]
現在我希望gridview刷新後立即顯示每個複選框被單擊後選定的列。我該怎麼做?
我想要的刷新類型並不涉及數據本身。如何強制刷新GridView?
這裏的情景: 我有3列A,B和C 一個GridView控件,用戶可以點擊複選框a,b和c鍵使相應的列可見或不可見。 [要清楚,這些複選框位於gridview外部。]
現在我希望gridview刷新後立即顯示每個複選框被單擊後選定的列。我該怎麼做?
假設你有一個表中的每一列(網格),你可以寫這樣的事情在jQuery的複選框:
$(function() {
$('input:checkbox').change(function() {
//get a reference to the corresponding table column
var $col = $('<#%=grid.ClientID %>' + ' td:nth-child(' + $(this).val() + ')');
if (this.checked) $col.hide();
else $col.show();
});
});
而且相應的複選框有一個值設置爲列索引的表。例如:
<input type="checkbox" value="1" /><-- hides first column in grid-->
<input type="checkbox" value="2" /><-- hides second column in grid-->
<input type="checkbox" value="3" /><-- hides third column in grid-->
一個較短/簡化版本,也可能會爲你工作是這樣的:
$(function() {
$('input:checkbox').change(function() {
var $col = $('table ' + 'td:nth-child(' + $(this).val() + ')');
$col.toggle();
});
});
protected void Check_Clicked(Object sender, EventArgs e)
{
CheckBox theOneClicked= (sender as CheckBox);
if(theOneClicked.ID=="checkbox1")
myGrid.Columns[0].Visible=false;
else if(theOneClicked.ID=="checkbox2")
myGrid.Columns[1].Visible=false;
else if(theOneClicked.ID=="checkbox3")
myGrid.Columns[2].Visible=false;
}
我想使用asp.net,這段代碼似乎不允許我在後面的C#代碼中這樣做。我錯了嗎?謝謝。 – user763554
@ user763554將在幾個中添加相同的C#版本。 – Icarus
@ user763554添加了C#版本,但如果我是你,我會在Jquery中執行它,除非只需要隱藏一列 – Icarus