2

私は2つのリンクボタンを持つグリッドビューを持っています:選択と編集と1つのチェックボックス ページがロードされたときにリンクボタンとチェックボックスを無効にする必要があります

これは私のASPページです:

 <asp:TemplateField>


                <ItemTemplate>
                      <asp:CheckBox id="Select" runat="server" OnCheckedChanged="CheckedChanged" AutoPostBack="false"/>
                      <asp:LinkButton  ID="idedit" CommandName="Edit" CausesValidation="true" runat="server"
                            ToolTip="Edit"  Text="Edit"/>

                    </ItemTemplate>

                <EditItemTemplate>

                 <asp:LinkButton  ID="idupdate" CommandName="Update" runat="server" CausesValidation="false" Text="Update"
                            ToolTip="Update" OnClientClick="javascript:if(!confirm('Are you sure do you want to update this?')){return false;}" />
                        <asp:LinkButton  ID="idcancel" runat="server" CommandName="Cancel" CausesValidation="false"
                            Text="Cancel" ToolTip="Cancel"/>
                </EditItemTemplate>
                </asp:TemplateField>

これは私のvbコードです:

    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    If Session("priv") = "host" Then
        fname_txt.Visible = False
        lname_txt.Visible = False
        email_txt.Visible = False
        birthday_txt.Visible = False
        phone_txt.Visible = False
        adresss_txt.Visible = False
        Label2.Visible = False
        Label3.Visible = False
        Label4.Visible = False
        Label5.Visible = False
        Label6.Visible = False
        Label7.Visible = False
        btn_delete.Visible = False
        btn_new.Visible = False
        Btn_save.Visible = False
    End If
    If Not IsPostBack Then
        GridView1.DataSource = x.selectProfile()
        GridView1.DataBind()
    End If
End Sub

前もって感謝します :)

4

2 に答える 2

1

RowDataBound次のようにグリッドのイベントを処理する必要があります。

マークアップ:

<asp:gridview id="GridView1" onrowdatabound="GridView1_RowDataBound" runat="server">
</asp:gridview>

注: これにより、GridView各行がバインドされたときに、メソッドGridView1_RowDataBoundでそのイベントを処理する必要があることがわかります。

分離コード:

Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
    ' Only deal with data rows, ignore header rows, footer rows, etc.
    If e.Row.RowType = DataControlRowType.DataRow Then
        ' If the user is a certain role, then do the following logic; otherwise do not
        If User.IsInRole("Administrators") Then
            ' Find the edit link button
            Dim theEditLinkButton As LinkButton = CType(e.Row.FindControl("idedit"), LinkButton)

            ' Disable the edit link button
            theEditLinkButton.Enabled = False
        End If    
    End If
End Sub
于 2013-08-22T15:31:49.093 に答える