0

グリッドビューの値に応じて、グリッドビューのボタンのテキストを変更するにはどうすればよいですか

たとえば、以下のコードでは、年齢が 40 歳未満の行のボタンテキストを YOUNG に設定し、40 以上の行のボタンテキストを OLD に設定するにはどうすればよいですか?

<asp:GridView ID="GV_DataByGroupAct" runat="server" AutoGenerateColumns="False">
    <Columns>
        <asp:BoundField DataField="Name" HeaderText="Name" />
        <asp:BoundField DataField="Age" HeaderText="Age" />
        <asp:BoundField DataField="Hight" HeaderText="Hight" />
        <asp:ButtonField Text="Young/Old" />
    </Columns>
</asp:GridView>

ありがとう

4

2 に答える 2

0

RowDataBound次のように、バインドされている各行のボタン テキストの内容を変更できるように、グリッド ビューのイベントを処理する必要があります。

Protected Sub GridView1_RowDataBound(sender As [Object], e As GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
        ' Put logic here to check age and then update button text
    End If
End Sub
于 2013-09-05T15:09:28.547 に答える
0

私はTemplateField実際のButtonコントロールとRowDataBoundあなたのロジックのために a を使用します:

aspx:

<asp:GridView ID="GV_DataByGroupAct" runat="server" AutoGenerateColumns="False">
    <Columns>
        <asp:BoundField DataField="Name" HeaderText="Name" />
        <asp:BoundField DataField="Age" HeaderText="Age" />
        <asp:BoundField DataField="Hight" HeaderText="Hight" />
        <asp:TemplateField>
           <ItemTemplate>
              <asp:Button ID="BtnYoungOld" runat="server" Text="Young/Old" />
           </ItemTemplate>
       </asp:TemplateField>
    </Columns>
</asp:GridView>

コードビハインド:

Private Sub GV_DataByGroupAct_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GV_DataByGroupAct.RowDataBound
    Select Case e.Row.RowType
        Case DataControlRowType.DataRow
            Dim row = DirectCast(e.Row.DataItem, DataRowView)
            Dim age As Int32 = Int32.Parse(row("age").ToString)
            Dim BtnYoungOld = DirectCast(e.Row.FindControl("BtnYoungOld"), Button)
            BtnYoungOld.Text = If(age < 40, "YOUNG", "OLD")
    End Select
End Sub
于 2013-09-05T15:08:26.830 に答える