簡體   English   中英

奇怪-由於以下原因,單擊更新按鈕不會導致回發

[英]Strange - Clicking Update button doesn’t cause a postback due to <!— tag

如果我在DetailsView中定義以下模板,則在單擊“ 更新”或“ 插入”按鈕時,該頁面將被發布回服務器:

   <EditItemTemplate>
       <asp:TextBox ID="txtDate" runat="server" Text='<%# Bind("Date") %>'></asp:TextBox>
    <asp:CompareValidator ID="valDateType" runat="server" ControlToValidate="txtDate" Type="Date" Operator="DataTypeCheck" Display="Dynamic" >*</asp:CompareValidator> 
</EditItemTemplate>

如果我通過簡單地刪除上面的代碼從上面的代碼中刪除CompareValidator控件,則頁面仍會被發布回去;但是如果我通過將它括在<!-- -->標記中來刪除CompareValidator控件,則出於某種原因單擊更新插入按鈕不會引起回發...而是什么也不會發生:

   <EditItemTemplate>
       <asp:TextBox ID="txtDate" runat="server"   Text='<%# Bind("Date") %>'></asp:TextBox>
   <!-- <asp:CompareValidator ID="valDateType" runat="server" ControlToValidate="txtDate" Type="Date" Operator="DataTypeCheck" Display="Dynamic" >*</asp:CompareValidator> -->
</EditItemTemplate>
</EditItemTemplate>

知道為什么頁面不回發嗎?

感謝名單

嘗試使用服務器端注釋:

<%--<asp:CompareValidator ID="valDateType" runat="server" ControlToValidate="txtDate" Type="Date" Operator="DataTypeCheck" Display="Dynamic" >*</asp:CompareValidator>--%>

您也可以使用Enabled="False"屬性。

上周,我在(別人的!)JSP中被類似的東西咬了。 HTML注釋不會阻止標記的解析。 如果它生成HTML注釋,則最終會嵌套HTML注釋以及各種奇怪的事情。

在ASP / JSP中,HTML樣式注釋定界符的唯一“安全”用法是它們之間沒有生成的內容:

<!-- This is safe -->

我們確切地知道ASP引擎對其進行解析之后將是什么-它將看起來相同。 當您在那里有一個ASP標記時,該問題可能會困擾您:

<!-- This might not be safe because I have no idea 
     what <asp:joesCustomTag/> expands to -->

如果該標記生成HTML注釋,則HTML注釋中將包含HTML注釋! 讓我們看看解析該自定義標簽並將HTML發送到瀏覽器時會發生什么:

<!-- This might not be safe because I have no idea 
     what 

     <!-- Joe's custom tag -->
     <p>Joe is 1337</p>

     expands to -->

您可以在那里看到問題-嵌套注釋使SO自己的解析器感到困惑。 最安全的假設是每個標簽都會生成一個HTML注釋,並且將其放入HTML注釋會傷到你。 即使是您的標簽,也可以稍后添加HTML注釋。

正如Paperjam所說,答案是使用正確的服務器端注釋將事情注釋掉-但是,當然,您實際上不應該將被注釋掉的壞東西浪費在等待您的咬傷。 僅當您實際上希望注釋顯示在HTML源代碼中時,才使用HTML樣式的注釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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