[英]Can you call PadLeft inside a databound server control?
假設我在gridview模板列中有一個標簽,並將文本分配給數據綁定項“ OrderID”。 有什么方法可以調用.ToString()。PadLeft(7,'0')嗎? 實際的標簽如下:
<asp:Label ID="lblOrderID" runat="server" Text='<%# "WW" + DataBinder.Eval(Container.DataItem, "OrderID") %>' />
因為PadLeft需要一個字符,所以我不能使用單引號,因為我已經將值括在單引號中,並且由於DataBinder.Eval表達式而不能做雙引號。 還有另一種方法可以使我在一條線上工作嗎?
您可以內聯完成它(我將其留給其他人給您答案,因為我沒有VS可以測試它)。
但是我可以通過在代碼背后添加一個方法來返回格式化的訂單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"]);
}
那么您可以在標記中的任何位置使用格式一致的訂單ID:
'<%# MyFormattingHelper.GetFormattedOrderId(Container.DataItem) %>'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.