使用vb.net更改gridview内的按钮文本

时间:2012-04-17 08:27:43

标签: button gridview

我是vb.net的新手。我有一些问题如何实现这个..我有gridview,按钮将根据列状态改变..如果状态为“已阻止”按钮将为“解除阻止”,如果状态为空,则按钮将为“块”。 我的另一个问题是,点击按钮后,所选行按钮将在数据库中更新,如果用户点击“阻止”,则将状态更改为阻止,然后按钮将再次更改为“取消阻止”按钮,反之亦然。 / strong>非常感谢您的帮助。

状态|不阻止/砌块

(空白)|块(按钮)

阻止|阻止(应该是解锁按钮)

这段代码怎么了..为什么它不起作用?

<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 

1 个答案:

答案 0 :(得分:0)

处理GridView1_RowDataBound事件。基于列(阻塞/ EmptyString)的值,使用FindControl查找按钮并将其文本更改为阻止/取消阻止