C# 可以在数据绑定服务器控件中调用PadLeft吗?
假设我在gridview模板列中有一个标签,并将文本分配给数据绑定项“OrderID”。是否有任何方法可以调用.ToString().PadLeft(7,'0')?标签如下:C# 可以在数据绑定服务器控件中调用PadLeft吗?,c#,.net,data-binding,C#,.net,Data Binding,假设我在gridview模板列中有一个标签,并将文本分配给数据绑定项“OrderID”。是否有任何方法可以调用.ToString().PadLeft(7,'0')?标签如下: <asp:Label ID="lblOrderID" runat="server" Text='<%# "WW" + DataBinder.Eval(Container.DataItem, "OrderID") %>' /> 因为PadLeft需要一个字符,所以我不能使用单引号,因为我已经用
<asp:Label ID="lblOrderID" runat="server" Text='<%# "WW" + DataBinder.Eval(Container.DataItem, "OrderID") %>' />
因为PadLeft需要一个字符,所以我不能使用单引号,因为我已经用单引号括住了值,并且由于DataBinder.Eval表达式的原因,我不能使用双引号。有没有其他方法可以让它在一行上运行?您可以在线运行(我将把它留给其他人给您答案,因为我没有VS open来测试它)
但我会通过在codebehind中添加一个方法来返回格式化的订单id。或者更好的是,将format方法放在一个静态帮助器类中,这样它就可以用于任何需要格式化订单id的页面
例如,如果您绑定到订单集合,则类似于:
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
}
public static string GetFormattedOrderId(object dataItem)
{
DataRow row = (DataRow) dataItem;
return String.Format("WW{0:N7}", row["OrderId"]);
}
或者,如果要绑定到DataTable,则类似于:
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
}
public static string GetFormattedOrderId(object dataItem)
{
DataRow row = (DataRow) dataItem;
return String.Format("WW{0:N7}", row["OrderId"]);
}
然后,您可以在标记中的任何位置拥有格式一致的订单id:
'<%# MyFormattingHelper.GetFormattedOrderId(Container.DataItem) %>'
“”