DataGrid Web Control 连载之九
生活随笔
收集整理的這篇文章主要介紹了
DataGrid Web Control 连载之九
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
單擊行內任意處選中該行<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> ??這個系列是在開發過程中對遇到的技術問題的一個總結,當時對這個控件的了解不是很多,但是根據需要實現的功能,不得不查閱N多資料,在MSDN文檔中只有英文的說明,我整理并翻譯了出來,在此和大家一起分享。轉載請加此連接[url]http://august.blog.51cto.com[/url],謝謝! DataGrid中提供的選擇行的默認的方式是添加一個Select按鈕(實際上,是一個LinkButton按鈕),將其CommandName屬性設為“Select”,當單擊按鈕時,DataGrid得到“Select”命令,并自動地在選中模式下顯示該行。 ? 并非所有的用戶都會喜歡默認的“Select”按鈕,問題是如何實現在某行的任意處單擊而能選中該行。The solution is to perform a kind of sleight-of-hand in the grid.你可以象通常那樣添加一個Select LinkButton,用戶仍然可以使用它,也可以將它隱藏,然后在Page中加入客戶端腳本將Select按鈕的功能有效地復制到整個行。 下面的例子說明了如何來實現。在GataGrid的ItemDataBound句柄中,首先要保證選中的行不能是header ,footer 或者Pager。然后得到Select按鈕的一個引用。在這個例子中,假設是第一個單元格中的第一個控件。然后調用一個少有人知的方法——GetPostBackClientHyperLink,這個方法返回一個設計好的控件的PostBack調用的名稱。換句話說,如果傳遞一個引用到一個LinkButton控件,這個方法將返回用于執行PostBack的客戶端功能調用的名稱。 最后,將客戶端方法指定給Item 本身,當DataGrid 生成時,它類似于一個HTML的Table。將方法指定給Item,等價于向表中的每一個行添加客戶端代碼。DataGrid的Item對象并不直接支持客戶端代碼到自身的方法,但是,我們可以通過它的Attributes集合來實現,這個集合傳遞通過瀏覽器指定給它的任何屬性項。 注意:這個技術的一個缺點在于,它在某種程度上增加了生成到瀏覽器的流,并且為每行的視圖狀態增加了信息量。 private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { ?? ListItemType itemType = e.Item.ItemType; ?? if ((itemType == ListItemType.Pager) || ?????? (itemType == ListItemType.Header) || ?????? (itemType == ListItemType.Footer)) ?? { ????? return; ?? } ?? LinkButton button = (LinkButton)e.Item.Cells[0].Controls[0]; ?? e.Item.Attributes[" = ????? Page.GetPostBackClientHyperlink(button, ""); } ? (--------------------Finished---------------------)
總結
以上是生活随笔為你收集整理的DataGrid Web Control 连载之九的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在网页中调用本地的应用程序
- 下一篇: jsp中jsp中群发邮件群发邮件