2012-04-04 52 views
2

我在我的gridview自定義編碼中有一些這些事件。但真正的問題在於,我存儲了以前的記錄,即正在更改的記錄,或old.value,並將其存儲在另一列中。因此,當用戶在沒有引號的情況下輸入「< newValue>」時,aspx驗證程序將輸入視爲危險。在gridview中編碼一個字段

我可以禁用驗證,並且將html編碼爲寫入數據庫的值,但是當我在「Previous Value」列中的gridview中顯示值時,它看起來像這樣... & lt中性& gt由於本網站解碼而丟失了分號碼。

如何在ASPX中進行內聯編碼和解碼?

我如何編碼輸入gridview的模板字段?

<EditItemTemplate> 
    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("lang_String") %>'></asp:TextBox> 
</EditItemTemplate> 

我想允許某些html字符只輸入到此字段中,而不關閉整個站點的驗證。

我確實需要將其應用於整個列。

謝謝,

回答

1

我發現了一個可行的解決方案來解決這個問題。在後面的代碼,輸入以下內容來調用一個函數來處理HTML編碼....

<Columns> 
<asp:TemplateField> 
    <ItemTemplate> 
     <asp:Label ..... Text='<%# DecodeIT(Eval("FirstName").ToString())%>' /> // for "decoding" 
</ItemTemplate> 
<EditTemplate> 
     <asp:TextBox id="TextBox1" runat="server" /> // for "encoding" 

下面是函數...

Private Function DecodeIT(firstName As String) As String 
Return HttpUtility.HtmlDecode(firstName) 
End Function 

大多數其他soltions建議在禁用驗證Page指令或web.config中,這不是解決此問題的最佳實踐。

使用這樣的功能是最好的方法。