私は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