0

私はvb.netが初めてです。これを実装する方法についていくつか質問があります。グリッドビューがあり、列のステータスに応じてボタンが変更されます。ステータスが「ブロック」の場合、ボタンは「ブロック解除」になり、ステータスが空白の場合、ボタンは「ブロック"。私の他の問題は、ボタンをクリックした後、選択した行のボタンがデータベースで更新され、ユーザーが「ブロック」をクリックするとステータスがブロックに変更され、再びボタンが「ブロック解除」ボタンに再び変更され、その逆も同様です。あなたの助けは大歓迎です..

ステータス | ブロック解除/ブロック

(空白)| ブロック(ボタン)

ブロックされました| ブロック(ブロック解除ボタンである必要があります)

このコードの何が問題なのですか?なぜ機能しないのですか?

<asp:BoundField DataField="AllowStatus" 
        HeaderText="" ReadOnly="True" 
        SortExpression="AllowStatus"> 
        <ItemStyle Width="300px" />
    </asp:BoundField>
    <asp:TemplateField HeaderText="Block/Unblock">
            <ItemTemplate>
                <asp:Button ID="BlockButton" runat="server" CausesValidation="false" CommandName="" Text="Block" />
            </ItemTemplate>
    </asp:TemplateField>




Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) ' Handles GridView1.RowDataBound **<<ooops my mistake I comment out this >.< ..that's why it's not working**
        If e.Row.RowType = DataControlRowType.DataRow Then
            Dim allowstatus As String = (DataBinder.Eval(e.Row.DataItem, "AllowStatus")).ToString
            Dim btn As Button = DirectCast(e.Row.FindControl("BlockButton"), Button)
            If allowstatus = "Blocked" Then
                btn.Text = "Unblocked"
            End If
        End If
End Sub 
4

1 に答える 1

0

GridView1_RowDataBound イベントを処理します。列の値 (blocked/EmptyString) に基づいて、FindControl を使用してボタンを見つけ、そのテキストをブロック/ブロック解除に変更します

于 2012-04-17T08:43:32.583 に答える