大师,
的查询我有一个使用ButtonField的gridview。我想根据页面加载时的用户类型更改文本。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Trim(Request.QueryString("Msg")) <> "" Then
If InStr(Request.QueryString("Msg"), "<") > 0 Then
Response.Write(Mid(Request.QueryString("Msg"), 1, InStr(Request.QueryString("Msg"), "<")))
Else
Response.Write(Request.QueryString("Msg"))
End If
End If
If Page.IsPostBack = False Then
Dim sSeries As String
sSeries = "Aim NBDE Part 1"
Dim o_cmd As SqlCommand
Dim o_reader As SqlDataReader
o_Con = New SqlConnection(GlobalVarC.DataS)
o_Con.Open()
Dim ds As New Data.DataSet
Dim da As SqlDataAdapter
Dim ExamId As String
S_Sql = "SELECT SNo from Exam_Ser where Series='" & sSeries.ToString & "'"
o_cmd = New SqlCommand(S_Sql, o_Con)
o_reader = o_cmd.ExecuteReader
ExamId = ""
Dim ExamIdTmp As String
While o_reader.Read
If ExamId.Equals("") Then
ExamId = ExamId + "SNo = "
Else
ExamId = ExamId + " OR SNo = "
End If
ExamIdTmp = o_reader(0).ToString
ExamId = ExamId + ExamIdTmp
ExamId = ExamId + ""
End While
o_reader.Close()
o_cmd.Dispose()
S_Sql = "SELECT Name from Exam where " & ExamId.ToString
da = New SqlDataAdapter(S_Sql, o_Con)
da.Fill(ds)
GridSubject.DataSource = ds
GridSubject.DataBind()
da.Dispose()
ds.Dispose()
o_Con.Close()
For Each row As GridViewRow In GridSubject.Rows
Dim button As Button
button = DirectCast(row.FindControl("idAppearButton"), Button)
button.Text = "Buy"
Next
End If
End Sub
我可以在GridSubject_SelectedIndexChanged
点击按钮时执行操作。
我正在尝试从Gridview获取按钮来更改文本。我尝试了一些搜索,并找到了从'GridSubject_SelectedIndexChanged'点击控制按钮的方法,但没有在页面加载时。
如果我能在页面加载时获得有关如何处理ButtonField CommandName =“ViewResults”的指针,那将非常有用。
<asp:ButtonField ButtonType="Button" CommandName="ViewResults" Text="Results" >
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Top" />
</asp:ButtonField>
<div id="gridViewId" align="center">
<asp:GridView ID="GridSubject" runat="server" AutoGenerateColumns="False" CellPadding="3"
OnSelectedIndexChanged="GridSubject_SelectedIndexChanged" BackColor="#CCCCCC"
BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px"
Width="714px" GridLines="Horizontal"
>
<EditRowStyle Font-Names="Calibri" />
<EmptyDataRowStyle Font-Names="Calibri" />
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" Font-Names="Calibri" />
<AlternatingRowStyle BackColor="#F7F7F7" Font-Names="Calibri" />
<Columns >
<asp:BoundField DataField="Name" HeaderText="Exam Name">
<ItemStyle Width="140px" HorizontalAlign="Left" VerticalAlign="Top" />
<HeaderStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:TemplateField ItemStyle-Width="100px">
<ItemTemplate>
<asp:RadioButtonList ID="RadioButtonList1" runat="server">
<asp:ListItem Value="0">Part 1</asp:ListItem>
<asp:ListItem Value="1">Part 2</asp:ListItem>
<asp:ListItem Selected="True" Value="3">Part 1 & 2</asp:ListItem>
</asp:RadioButtonList>
</ItemTemplate>
<FooterStyle HorizontalAlign="Left" />
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle Width="100px" HorizontalAlign="Left"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:Button ID="idAppearButton" runat="server"
CommandName="MYCOMMAND" Text="Appear">
</asp:Button>
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField ButtonType="Button" CommandName="ViewResults" Text="Results" >
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Top" />
</asp:ButtonField>
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<asp:Label runat="server" Text="Not Completed"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle BackColor="#E7E7FF" ForeColor="#000000" Font-Names="Calibri" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7"
Font-Names="Cambria" />
<PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right"
Font-Names="Calibri" />
<HeaderStyle BackColor="#000000" Font-Bold="True" ForeColor="#F7F7F7" />
<SortedAscendingCellStyle BackColor="#F1F1F1" />
<SortedAscendingHeaderStyle BackColor="#808080" />
<SortedDescendingCellStyle BackColor="#CAC9C9" />
<SortedDescendingHeaderStyle BackColor="#383838" />
<SortedAscendingCellStyle BackColor="#F4F4FD"></SortedAscendingCellStyle>
<SortedAscendingHeaderStyle BackColor="#5A4C9D"></SortedAscendingHeaderStyle>
<SortedDescendingCellStyle BackColor="#D8D8F0"></SortedDescendingCellStyle>
<SortedDescendingHeaderStyle BackColor="#3E3277"></SortedDescendingHeaderStyle>
</asp:GridView>
</div>
答案 0 :(得分:1)
使用网格视图的RowDataBound
事件来处理绑定到网格的每一行,如下所示:
Protected Sub gridViewId_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
' Find the button to change the text of
Dim theButtonToChangeTextOf As Button = CType(e.Row.FindControl("idAppearButton"), Button)
theButtonToChangeTextOf.Text = theTextYouWantForTheButtonHere
End If
End Sub