EditCommandColumn

發表于:2007-07-14來源:作者:點擊數: 標簽:
EditCommandColumn 最主要的功能是利用LinkButton 或PushButton 來下達編輯資料的命令,并且可以觸發DataGrid Web 控件的事件。EditCommandColumn 進入編輯模式的時候會產生TextBox 讓使用者編輯,也可以和TemplateColumn 一起配合使用,我們后面介紹Templat


    EditCommandColumn 最主要的功能是利用LinkButton 或PushButton 來下達編輯資料的命令,并且可以觸發DataGrid Web 控件的事件。EditCommandColumn 進入編輯模式的時候會產生TextBox 讓使用者編輯,也可以和TemplateColumn 一起配合使用,我們后面介紹TemplateColumn 的時候會說明。其使用語法如下所示:

<ASP:EditCommandColumn
ButtonType="LinkButton | PushButton"
CancelText="CancelButtonCaption"
EditText="EditButtonCaption"
FooterText="FooterText"
HeaderImageUrl="url"
HeaderText="HeaderText"
ReadOnly="True | False"
SortField="DataSourceFieldToSortBy"
UpdateText="UpdateButtonCaption"
Visible="True | False"
/>

其中除了共同基礎屬性以及樣式對象外,常用的屬性如下表所示:
    當使用者點選了顯示EditText 的控件時,DataGrid Web 控件會自動觸發OnEditCommand 事件,并執行OnEditCommand 屬性所指定的事件程序;倘若點選了顯示UpdateText 以及CancelText內容的控制像,也一樣分別自動觸發OnUpdateCommand 以及OnCancelCommand 事件。下列程序代碼范例增加了一個EditCommandColumn 字段,并且顯示使用者點選了哪一個按鈕:

<%@Import Namespace=System.Data.ADO%>
<%@Import Namespace=System.Data%>
<!--#Include File="GetTable.inc"-->
<Html>
<Form Runat="Server">
<ASP:DataGrid Id="dgA" AllowPaging="True" PageSize="5"
OnPageIndexChanged="dgA_PageChg" Runat="Server"
PagerStyle-Mode="NumericPages" BorderColor="#808080"
HeaderStyle-Font-Names="Courier New"
HeaderStyle-BackColor="#D1DCEB"
HeaderStyle-Font-Bold="True" HeaderStyle-HorizontalAlign="Center"
OnEditCommand="dgA_ECmd" OnUpdateCommand="dgA_UCmd"
OnCancelCommand="dgA_CCmd" >
<Property Name="Columns">
<ASP:BoundColumn
HeaderText="姓名"
DataField="UserName"/>
<ASP:BoundColumn
HeaderText="電話"
DataField="UserTel"/>
<ASP:EditCommandColumn
HeaderText="編輯"
ButtonType="PushButton"
EditText="編輯"
UpdateText="更新"
CancelText="放棄"/>
</Property>
</ASP:DataGrid>
</Form>
<ASP:Label Id="Label1" Runat="Server"/>
<Script Language="VB" Runat="Server">
Dim dtDataTable As DataTable=GetTable("CH08\MyWeb.mdb", "Members")
Sub Page_Load(Sender As Object, e As EventArgs)
If Page.IsPostBack=False Then
dgA.DataSource=dtDataTable.DefaultView
Page.DataBind()
End If
End Sub
Sub dgA_PageChg(Sender As Object, e As DataGridPageChangedEventArgs)
dgA.DataSource=dtDataTable.DefaultView
Page.DataBind()
End Sub
Sub dgA_ECmd(Sender As Object, e As DataGridCommandEventArgs)
Label1.Text="您點選了第" & (e.Item.ItemIndex+1).ToString & " 個字
段的編輯."
dgA.EditItemIndex=e.Item.ItemIndex
dgA.DataSource=dtDataTable.DefaultView
Page.DataBind()
End Sub
Sub dgA_UCmd(Sender As Object, e As DataGridCommandEventArgs)
Label1.Text="您點選了第" & (e.Item.ItemIndex+1).ToString & " 個字
段的更新."
dgA.EditItemIndex=-1
dgA.DataSource=dtDataTable.DefaultView
Page.DataBind()
End Sub
Sub dgA_CCmd(Sender As Object, e As DataGridCommandEventArgs)
Label1.Text="您點選了第" & (e.Item.ItemIndex+1).ToString & " 個字
段的放棄."
dgA.EditItemIndex=-1
dgA.DataSource=dtDataTable.DefaultView
Page.DataBind()
End Sub
</SCRIPT>
</Html>


    上述范例中,由于DataTable 對象要讓其它事件程序使用,所以我們在網頁階層的宣告區宣告。我們也指定了OnEditCommand 事件、OnUpdateCommand 事件以及OnCancelCommand 事件;當使用者按下「編輯」按鈕時會自動觸發我們所指定的dgA_ECmd 事件程序,如下程序代碼范例所示:

Sub dgA_ECmd(Sender As Object, e As DataGridCommandEventArgs)
Label1.Text="您點選了第" & (e.Item.ItemIndex+1).ToString & " 個字
段的編輯."
dgA.EditItemIndex=e.Item.ItemIndex
dgA.DataSource=dtDataTable.DefaultView
Page.DataBind()
End Sub

    上述程序代碼片段將DataGrid 的EditItemIndex 屬性設定為使用者所點選記錄的索引值,所以該筆記錄就會進入編輯模式;此時原來字段內的「編輯」按鈕就會變成「更新」以及「放棄」。使用者若編輯完畢后再點選「更新」或「放棄」按鈕時,即觸發所指定的OnUpdateCommand或是OnCancelCommand 事件;這些事件最后將DataGrid 對象的EditItemIndex 屬性設為-1,表示沒有任何項目被編輯,讓數據回復到原來的顯示模式。如下圖所示:

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97