如何在asp.net中的DataBinder.Eval中使用IF ELSE语句

时间:2014-07-04 07:22:59

标签: c# asp.net data-binding

我必须在网格视图中使用多个if else语句,如果代码==“1”然后是“Test1”,如果它的“2”则是“Test2”,如果它的“3”则是“Test3”,如果它是“4” “the”Test4“..

<asp:Label ID="lblCode" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Code")%>'></asp:Label>

所以我试图像这样包括

<asp:Label ID="lblCode" runat="server" Text='<%# if((DataBinder.Eval(Container, "DataItem.Code")).ToString())==" 1" then "Test1" %>'></asp:Label>

它显示我错误Invalid expression term 'if' ..现在怎么写这个,请帮忙

1 个答案:

答案 0 :(得分:1)

这是您应该使用控件OnDataBinding事件的位置,并将标记之外的任何逻辑移到您的代码后面。

<asp:Label ID="lblCode" runat="server" Text='' OnDataBinding="lblCode_DataBinding" />

然后实施活动:

protected void lblCode_DataBinding(object sender, System.EventArgs e)
{
    Label lbl = (Label)sender;
    string code = Eval("Code");
    switch (code)
    {
        case "1":
           lbl.Text = "Test1";
           break;
        case "2":
           lbl.Text = "Test2";
           break;
        case "3":
           lbl.Text = "Test3";
           break;
        case "4":
           lbl.Text = "Test4";
           break;
        default:
           lbl.Text = "Unknown";
           break;
    }
}

将您的逻辑保留在代码中的最佳做法。

希望有所帮助。