2014-09-18 69 views
0

當tbody中的文本框被修改時,我在顯示/隱藏javascript調用的表中有一個tbody。這個tbody最初設置爲從其初始標記顯示=無,但如果它已經包含一個值,則會在代碼隱藏中顯示。Codebehind not detected display in javascript

標記:

<tbody class="tbDOIndustryModifierCls" style="width: 100%;display:none;margin:0" id="tbDOIndustryModifierComments" runat="server"> 
    <td> 
     <asp:Label CssClass="raterLabel lblDOIndustryModifierComments" ID="Label11" runat="server">&emsp;&emsp;Comments: 
     </asp:Label> 
    </td> 
    <td colspan="2"> 
     <asp:textbox Width="100%" ID="txtDOIndustryModifierComments" CssClass="txtDOIndustryModifierComments" runat="server"></asp:textbox> 
    </td> 
</tbody> 

代碼隱藏頁面加載:

If Not IsNothing(comment) Then 
     txtDOIndustryModifierComments.Text = comment 
     tbDOIndustryModifierComments.Style.Add(DISPLAY, BLOCK) 
End If 

所以情況是,「意見」字段的值,所以這個tbody在頁面上的代碼隱藏設置爲display=BLOCK加載。然後用戶使用控件混淆,並將此相同的tbody設置爲display = none(通過jquery hide())。

我也有一個「保存」按鈕,這是在我的vb.net代碼隱藏處理。

我遇到的問題是,我可以(用jqueryhide())爲「無」,通過javascript改變TBODY的顯示屬性,但是當我打的保存按鈕,代碼隱藏仍然看到tbodydisplay = block

代碼隱藏保存方法

If (tbDOIndustryModifierComments.Style(DISPLAY) = NONE) Then _ 
'logic 

(此檢查後javascriptdisplay=none評估爲false)有什麼辦法看tbody(或文本框)是否被隱藏或如果代碼隱藏顯示屬性是修改客戶端?

對不起,如果我的措辭關閉,讓我知道任何我可以澄清。感謝您的時間。

+0

使用hiddenfield和閱讀request.form – InferOn 2014-09-18 15:46:38

+0

謝謝,我確實考慮過這個,但是想避免增加更多的字段,因爲我在頁面中會有幾個這樣的tbody。但似乎這可能是我唯一的選擇。 – nismonster 2014-09-18 15:54:08

回答

1

傳遞迴服務器上的後回在視圖狀態等<input><textarea><select>元件以及信息由ASP.NET存儲(其本身存儲在<input type='hidden'>被保持的值的唯一信息(這些是ASP.NET在顯示頁面時創建(呈現)的基本HTML元素。)

這意味着如果您在客戶端動態地更改這些基本元素之外的任何內容,他們不會自動發送回服務器。

我建議你做的是創建一個新的<asp:HiddenField>它將存儲你的表體的狀態。然後在回發後,您可以使用該字段中的值來查看是否需要顯示/隱藏表格主體。

(記得還要設置值的隱藏字段的初始渲染頁面,讓你得到正確的值回,即使你不改變任何東西)

+0

謝謝,我已經知道我可以這樣做,但希望有另一種方式。原因是我會有幾個這樣的tbody控件,並不想增加更多的標記,但我想這是唯一的方法。 – nismonster 2014-09-18 15:53:15

+0

沒有問題 - 抱歉這不是更好的消息,但這是ASP.NET的方式,你必須忍受可用的東西。祝你的項目好運:-) – freefaller 2014-09-18 16:02:22

+0

+1,因爲你已經解釋了viewstate和許多事情沒有傳回服務器的事實,但你不需要*使用ASP.Net控件。您可以在一個aspx頁面上放置一個HTML元素,並在後面的代碼中引用它作爲Request [「elementID」]'。我很少使用ASP.Net控件,因爲我發現它們是屁股的一個長期痛苦! – Archer 2014-09-18 16:07:08