2009-09-21 53 views
1

所以我有這樣一個GridView:綁定的輸出被複制

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" GridLines="None" 
    OnRowCommand="gv_RowCommand" OnRowDeleting="gv_RowDeleting" Width="100%" 
    OnPreRender="gv_PreRender"> 
    <Columns> 
... 
    <asp:TemplateField HeaderText="Temperatura"> 
     <ItemTemplate> 
      <asp:TextBox MaxLength="10" ID="gvtxtTemp" runat="server" Text='<%# Eval("Registro3", "{0} °F")%>' /> 
     </ItemTemplate> 
     <ControlStyle Width="100%" BackColor="Transparent" BorderStyle="None" /> 
    </asp:TemplateField> 
... 
    </Columns> 
</asp:GridView> 

所以我們可以說是綁定的值是數字「10」,所以我期望的輸出是這樣的「 10°F「,但是我得到了」10°F°F「。爲什麼?難道我做錯了什麼?

我也試過在代碼隱藏中做它,但結果是一樣的。

更新:現在我將格式字符串更改爲「a {0}°F」,我得到了「一個10°F」,現在這是什麼意思?

+0

當你只是做{0}時會發生什麼,你沒有使用已經有ToString()方法重載的用戶類型來添加°F到底是你? – Sekhat 2009-09-21 16:17:41

+0

沒有格式化會得到什麼?你確定你的數據只返回10嗎? – 2009-09-21 17:27:31

+0

是的,沒有格式化我只有10個,如果我只是格式化爲「{0}」,也是一樣。任何想法爲什麼發生這種情況? – Unlimited071 2009-09-21 18:02:43

回答

0

好了,我終於得到了我想要的東西,我使用的格式是:

<asp:TextBox MaxLength="10" ID="gvtxtTemp" runat="server" Text='<%# Eval("Registro3", "{0:#.# °F}")%>' /> 

,現在我得到所需的輸出「10°F」,甚至認爲該數據不是數字(這是一個varchar(10)字段)。爲什麼這項工作打敗了我,但它的工作,也許你們中的一些人可以告訴我原因。無論如何,感謝所有的幫助!

+0

''''我沒有擦掉一個測試項目來驗證,但我今天早些時候會建議{0:°F}。 – 2009-09-22 04:02:38