我只是在搜索現有問題後才找到解決方案。ASP.NET EditItemTemplate綁定到TimeSpan
基本上,我有一個啓用了編輯功能的細節視圖。它綁定到一個LINQDataSource。其中一個字段是SQL時間,它以TimeSpan的形式進入ASP.NET。我想要一個雙向綁定。我已經有用於我的目的在String和TimeSpan之間進行轉換的函數。
但這是我的難題。我覺得我需要一個文本=表達式來填充文本框編輯開始時,
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# TimeSpanToString(Eval("Time")) %>'></asp:TextBox>
</EditItemTemplate>
,但在同一時間,不同的文本=表達式來指定時間跨度值寫回數據庫的更新;是這樣的:
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Time", StringToTimespan(TextBox1.Text) %>'></asp:TextBox>
</EditItemTemplate>
正如你所看到的,我非常不確定的語法在評估和演示使用,並綁定在首位表情,但我希望我已經成功地解釋了我的問題。只能有一個Text =表達式,所以顯然需要在這裏完成不同的工作,以便在數據綁定和更新期間進行兩次轉換。
謝謝! 桑德拉
從@ jadarnel23試圖解決方案:
對於ItemTemplate中,TimeSpanToTimeString(EVAL( 「時代」))完美的作品。 ItemUpdating功能還可以完美工作 - 用戶可以輸入例如下午1點30分,接受。
剩下的唯一問題就是EditTemplate。
綁定(「時間」)可以工作,但不會爲用戶提供格式良好的時間。如您所說,TimeSpanToString(Eval(「Time」))不起作用,因爲它不會在ItemUpdating中創建NewValues條目。
而且應該是贏家TimeSpanToString(Bind(「Time」)),實際上會在綁定時拋出一個錯誤「編譯器錯誤信息:BC30451:'綁定'沒有聲明它可能無法訪問,因爲它保護級別「。它看起來像我需要詳細說明綁定,以便我的函數可以看到它,但是如何?謝謝,這真的很接近!
這聽起來很棒!我應該有時間在今天或明天的這個項目上工作,並期待回報。謝謝! – Sandra
非常好,@Sandra。我期待着聽到它是否適合你=) – jadarnel27
嘿,@Sandra。看起來你的一些評論沒有通過=)什麼不工作? – jadarnel27