簡體   English   中英

您可以在數據綁定服務器控件內調用PadLeft嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM