假设我在gridview模板列中有一个标签,我将文本分配给数据绑定项“OrderID”。有什么方法我可以调用.ToString()。PadLeft(7,'0')?这是标签:
<asp:Label ID="lblOrderID" runat="server" Text='<%# "WW" + DataBinder.Eval(Container.DataItem, "OrderID") %>' />
因为PadLeft需要一个char,所以我不能使用我的单引号,因为我已经用单引号包围了值,并且由于DataBinder.Eval表达式而无法使用双引号。还有另一种方法可以让我在一条线上工作吗?
答案 0 :(得分:1)
你可以内联播放(我会留给其他人给你答案,因为我没有VS开放测试它。)
但我会通过在codebehind中添加一个方法来返回格式化的订单ID。或者甚至更好,将格式方法放在静态助手类中,以便任何需要格式化订单ID的页面都可以使用。
E.g。如果你绑定了一系列订单,比如:
public static string GetFormattedOrderId(object dataItem)
{
Order order = (Order) dataItem;
return String.Format("WW{0:N7}", order.OrderId); \
// or return order.OrderId.ToString().PadLeft... if you prefer
}
或者如果您绑定到DataTable,例如:
public static string GetFormattedOrderId(object dataItem)
{
DataRow row = (DataRow) dataItem;
return String.Format("WW{0:N7}", row["OrderId"]);
}
然后您可以在标记中的任何位置使用一致的格式化订单ID:
'<%# MyFormattingHelper.GetFormattedOrderId(Container.DataItem) %>'