みなさんこんにちは、データフィールドの値に応じて、バウンドフィールドに異なる文字列を表示するにはどうすればよいですか?
たとえば、データフィールドの値が 1 の場合、「保留中」と表示されます。2 の場合、「削除済み」。
前もって感謝します。
みなさんこんにちは、データフィールドの値に応じて、バウンドフィールドに異なる文字列を表示するにはどうすればよいですか?
たとえば、データフィールドの値が 1 の場合、「保留中」と表示されます。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;
}
BoundField ではなく、TemplateField を使用します。次に、RowDataBound の GridView にイベントを追加します。呼び出されたメソッドで、値 (以下の例では隠しフィールドに格納されています) を評価し、適切なテキストを (例では Label に) 出力します。
ここに少しスターターコードがあります。
<ItemTemplate>
<asp:HiddenField ID="hdnStatus" runat="server" Value='<%# Bind("status") %>' />
<asp:Label ID="lblStatus" runat="server" />
</ItemTemplate>
これを使用して、RowDataBound イベントの使用について少し調べてください。行き詰まった場合は、作成したコードと行き詰まった方法で質問を更新してください。喜んでお手伝いさせていただきます。
研究は重要であり、その分野でスキルを磨くことはあなたにとって非常に有益です。頼れる人がいるのはいいことだけど、頼れるのは自分しかいない時もある。