簡體   English   中英

GridView中的.net文本框,未從客戶端JavaScript回傳背景色更改

[英].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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM