[英].net textbox in gridview, unaware at postback of background-color change from client javascript
在GridView中,我有以下包含文本框的模板字段
<asp:TemplateField ShowHeader="true" ItemStyle-HorizontalAlign="left" ItemStyle-VerticalAlign="Middle" ItemStyle-Width="106px" HeaderText="Actual Order">
<ItemTemplate>
<asp:TextBox runat="server" ID="txtActualOrder" Columns="4" Text='<%#Eval("QtyOrdered")%>'
CausesValidation="true" onBlur='validate(...)'/>
</ItemTemplate>
</asp:TemplateField>
當用戶從一個單元格中刪除時,我將驗證在文本框中輸入的數量,並將文本框的底色更改為黃色(如果有效),將其更改為紅色(如果無效)(在javascript中)。
然后,我有一個保存按鈕,該按鈕回發到服務器並遍歷gridview。 我可以從文本框中獲取新輸入的文本值,但是我不知道該單元格已將其背景色更改為黃色。 VS表示該單元格仍為白色的默認值。 下面的if語句始終為false,VS調試器表示該單元格仍為白色。 有誰知道為什么在回發中我可以獲取新的文本值,但無法獲得單元格的新背景色? 將我的gridviewrow記錄標記為已授權,然后在回發時將該值傳遞回服務器的最佳方法是什么?
foreach (GridViewRow row in gvProducts.Rows)
{
TextBox tbActualOrder = (TextBox)row.Cells[3].FindControl("txtActualOrder");
if (tbActualOrder != null)
{
if (tbActualOrder.BackColor != System.Drawing.Color.FromName("yellow"))
{}
}
}
發生POST時,控件的顏色不屬於提交的數據。 您將需要創建一個姐妹隱藏字段,用於存儲有效/無效數據。 類似於<input type="hidden" name="txtActualOrder_ValidationResults"/>
。
當然,驗證客戶端以更新UI,然后丟棄該驗證的結果並在服務器端重做它是執行驗證的正確方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.