2010-05-22 36 views
0

我在綁定表達式中使用代碼隱藏函數(稱爲TestFx)。我傳遞一個字符串,該函數接受一個字符串,但我仍然得到一個運行時錯誤,說無效的參數。asp.net databinding字符串被傳遞到函數,但運行時發生

但是,如果我改變方法來接受一個對象,並檢查值,「它是一個字符串!」 有人可以解釋一下嗎?

-ROD

ProductDescription: 
       <asp:Label ID="ProductDescriptionLabel" runat="server" 
        Text='<%# TestFx(Eval("ProductDescription")) %>' /> 
       <br /> 

回答

0

Eval返回類型是object。正如你已經注意到了,你可以改變你的方法的簽名接受一個對象,或者您可以在Eval("ProductDescription")結果強制轉換爲字符串:

<asp:Label ID="ProductDescriptionLabel" runat="server" 
        Text='<%# TestFx(Eval("ProductDescription").ToString()) %>' /> 
+0

或者如果您知道該項目將是一個字符串,您可以將其轉換爲一個字符串而不是調用「ToString」 – R0MANARMY 2010-05-22 19:54:13

1

另一種選擇是,以處理轉發器控制ItemDataBound事件。如果ItemTemplate元素需要複雜裝飾,則更合適