DataGrid 提供了豐富的資料顯示功能,但在對其進行擴充卻不是十分的容易。好在它提供了很多的介面供我們擴充。
OnItemCommand :對自訂按鈕定義 CommandName ,可通過 CommandName 來區分實現不同的功能。
<EditCommandColumn></EditCommandColumn> 內的介面
OnCancelCommand
OnEditCommand
OnUpdateCommand
Item 建立時的事件(只在 Create 時執行)
OnItemCreated
Item 資料繫結的事件 (在每次 render 時都執行)
OnItemDataBound
DataGrid 提供的 <EditCommandColumn></EditCommandColumn> 可以實現對 Row 中的資料進行修改和提交,功能十分強大。但是卻沒有提供用戶端的功能擴充。那我們應該怎麼辦呢?
好在 DataGrid 有個 OnItemDataBound 事件,這樣我們就有機會在 OnUpdateCommand 執行之前增加用戶端功能了。
實現代碼如下:protected void dgRankList_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.EditItem)
{
WebControl okLbtn = (LinkButton) e.Item.Cells[4].Controls[0];
if (okLbtn != null)
{
TextBox txtEditLower = (TextBox) e.Item.Cells[1].FindControl("txtEditLower");
TextBox txtEditUpper = (TextBox)e.Item.Cells[1].FindControl("txtEditUpper");
TextBox txtEditRank = (TextBox)e.Item.Cells[1].FindControl("txtEditRank");
okLbtn.Attributes.Add("onclick",
string.Format("return validateRankReg('{0}','{1}','{2}');",
txtEditLower.ClientID, txtEditUpper.ClientID, txtEditRank.ClientID));
}
}
}