我必须在网格视图中使用多个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'
..现在怎么写这个,请帮忙
答案 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;
}
}
将您的逻辑保留在代码中的最佳做法。
希望有所帮助。