4

みなさんこんにちは、データフィールドの値に応じて、バウンドフィールドに異なる文字列を表示するにはどうすればよいですか?

たとえば、データフィールドの値が 1 の場合、「保留中」と表示されます。2 の場合、「削除済み」。

前もって感謝します。

4

3 に答える 3

2

サーバー側の関数を使用して、条件値を表示できます。

このサンプルを見てください:

         <asp:TemplateField ItemStyle-CssClass="TemplateFieldOneColumn">
            <ItemTemplate>
                <asp:Label runat="server" Text='<% #GetLabelText(Eval("status")) %>' />
            </ItemTemplate>
         </asp:TemplateField>

ホスティングページで宣言されたサーバー側関数は次のとおりです。

    public string GetLabelText(object dataItem)
    {
        string text = "";
        int? val = dataItem as int?;
        switch (val)
        {
            case 1:
                text = "Pending";
                break;
            case 2:
                text = "Deleted";
                break;

        }
        return text;
    }
于 2012-12-18T21:05:52.350 に答える
0

BoundField ではなく、TemplateField を使用します。次に、RowDataBound の GridView にイベントを追加します。呼び出されたメソッドで、値 (以下の例では隠しフィールドに格納されています) を評価し、適切なテキストを (例では Label に) 出力します。

ここに少しスターターコードがあります。

<ItemTemplate>
  <asp:HiddenField ID="hdnStatus" runat="server" Value='<%# Bind("status") %>' />
  <asp:Label ID="lblStatus" runat="server" />
</ItemTemplate>

これを使用して、RowDataBound イベントの使用について少し調べてください。行き詰まった場合は、作成したコードと行き詰まった方法で質問を更新してください。喜んでお手伝いさせていただきます。

研究は重要であり、その分野でスキルを磨くことはあなたにとって非常に有益です。頼れる人がいるのはいいことだけど、頼れるのは自分しかいない時もある。

于 2012-12-18T20:54:37.757 に答える