Gridview:更改按钮文本和页面加载链接

时间:2013-09-30 07:59:20

标签: asp.net gridview

大师,

我有一个带有模板字段按钮的gridview,我想在页面加载时更改用户类型按钮上的文本。

我试图从Gridview获取按钮来更改文本和链接,但控件始终返回null。了解如何更改页面加载时的文本和链接将非常有用。

  

TryCast(row.Cells(0).Controls(0).FindControl( “idAppearButton”),   按钮)

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 = TryCast(row.Cells(0).Controls(0).FindControl("idAppearButton"), Button)
                    'button.Text = "Buy"
                Next

            End If

        End Sub



<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 &amp; 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>

1 个答案:

答案 0 :(得分:1)

您必须使用Row.FindControl(id)来查找对该控件的引用。如果您使用仅适用于Cell.Text的{​​{1}},则无法使用TemplateFields

BoundFields