像是用「System.Data.*」操作或是ViewState等狀態管理
這篇介紹兩個簡單的方法,各有其特色
- HiddenField:還想利用JQuery或在Client端對其有動態影響時
- Visible=False:Client看不到, 一定要PostBack
但有可能導致使用者在操作WebFormView時出現
「Srvtools.WebDataSource元件Master發生錯誤,無法找到欄位:XXX的值」
這時先檢查一下該控制項的Bind設定
(錯誤) <asp:Label ID="Label1" runat="server" Text='<%# Eval("CustID") %>' Visible="False"></asp:Label>
(正確) <asp:Label ID="Label1" runat="server" Text='<%# Bind("CustID") %>' Visible="False"></asp:Label>
如果連這樣都無法解決,對於該欄位又沒有資安考量時,可以考慮使用「HiddenField」
HiddenField是VS內建的控制項
將其插入ItemTemplate的樣板(或其他有需求的樣板模式)
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Bind("CustID") %>' />
由於該程式碼經編譯後,在Client端看的到
會轉換成「<input type="hidden" name="WebFormView1$HiddenField1" id="WebFormView1_HiddenField1" value="1">」
與利用JQuery的hide();有相同的缺點,如果是資安考量的欄位,請勿直接使用「HiddenField」