2017-09-19 26 views
0

我想創建一個按鈕/圖像按鈕來彈出面板。我已經嘗試了圖像按鈕和按鈕,並在按鈕onserverclick和onclick。無論如何,它不會觸及事件,它會將這些參數(隨機地)發佈到像「ctl00%24MainContent%24btnNewDoc = Add + New」這樣的URL中。ASP圖像按鈕和按鈕沒有觸發事件,而是它張貼URL上的參數

<asp:Button id="btnNewDoc" onserverclick="btnNewDoc_Click" Text="Add New" runat="server"/> 

protected void btnNewDoc_Click(object sender, EventArgs e) 
     { 
      PnlDoc.Visible = true; 
     } 

它只是一個面板,它不應該爲我傳遞參數。不知道這個參數傳遞的原因。單就這個形式而言,這種情況正在發生。對此有任何想法。

+0

您是否添加了更多'form'標記或以某種方式更改了頁面的'form'標記? – David

+1

你可以發佈整個代碼嗎? –

+0

<形式類= 「形橫」> <的ContentTemplate>

user8158183

回答

0

假設您將一個按鈕拖到您的視圖中。當你點擊屬性。有OnClick事件。只要雙擊它,產生的將是

<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> 

所以你的情況應該是的OnClick而不是onserverClick您正在使用的代碼。

0

(只需提供基於註釋的回答上面,以幫助未來的讀者......)

在有關問題的評論指定:

我已經增加了一個表單標籤

和:

<form class="form-horizontal"> 

這是什麼導致了CON融合,原因有幾個:

  1. 默認的窗體方法,除非另有說明,都是GET。這就是爲什麼您要點擊的按鈕的鍵/值對正被添加到URL中。而默認操作是當前頁面,所以它只是用該URL值重新加載頁面。
  2. form嵌套在form內實際上是無效的HTML,因此表單提交哪些數據的實際行爲可能未定義,並且可能是瀏覽器特定的。 form元素需要在HTML中分開。
  3. 在WebForms中完全添加form元素可能無法與框架一起使用。除非自上次使用WebForms以來事情已發生變化,否則框架通常會將整個頁面包裝在一個formrunat="server"之間。這種形式每次都回發到頁面上的所有表單信息,包括框架用來跟蹤控制狀態的各種hidden表單元素。創建您自己的表單帖子/操作會破壞該操作並導致框架以意想不到的方式行事。

基本上你應該能夠簡單地刪除您的自定義form並允許按鈕使用框架的form在頁面級別。這應該在框架中產生標準的回傳,並允許框架使用所有相關的信息將該動作映射到服務器端的點擊處理事件。

相關問題