2011-10-31 55 views
1

我有一段代碼變化的div到HTML服務器控件,並添加一個click事件

<div class="class1"> 
<span>testing</span> 
</div> 

我會變成HTML服務器控件這一點。

<div class="class1" id="div1" runat="server"> 
<span>testing</span> 
</div> 

我想添加一個點擊事件。

<div class="class1" id="div1" runat="server" onclick="Test_Click"> 
<span>testing</span> 
</div> 

在代碼後面,我有該事件處理程序。

protected void Test_Click(object sernder, EventArgs e) 
{ 
    //code 
} 

但它不工作。我試圖通過改變onclickonserverclick。它仍然沒有工作..

還有其他方法嗎?

回答

2

從你的文章中,我得到了你想要簡單的去服務器端事件,同時點擊Div。 您無法直接將此設置爲DIV,而是可以在div中使用Hidden Button並觸發click事件manually

<script> 
    function clickDiv() { 
    if (__doPostBack) { 
     __doPostBack('<%=btnNew.UniqueID %>', ''); 
    } 
    else { 
     var theForm = document.forms['aspnetForm']; 
     if (!theForm) { 
      theForm = document.aspnetForm; 
     } 
     if (!theForm.onsubmit || (theForm.onsubmit() != false)) { 
      theForm.__EVENTTARGET.value = '<%=btnNew.UniqueID %>'; 
      theForm.__EVENTARGUMENT.value = ''; 
      theForm.submit(); 
     } 
    } 
} 
    </script> 

<div class="class1" id="div1" runat="server" onclick="clickDiv()"> 
<span>testing</span> 
<asp:Button runat="server" Style="display: none" ID="btnNew" Text="Submit" OnClick="btnNew_Click" /> 
</div> 

在_Default.aspx.cs

public partial class _Default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 


     } 

     protected void btnNew_Click(object sender, EventArgs e) 
     { 
      result.Text += "hey, event handler! "; 
     } 


    } 

你可以看到jQuery實施看過來: JQuery UI Dialog & Asp (web forms) calling event handler

+0

嗨,我覺得你的方法應該工作..但是,當我實現它,我有JavaScript錯誤'對象預期' – william

+1

上述答案是正確的,但我不得不使用'document.getElementById('<%= listBtn1.ClientID%>')。click();'而不是'dopostback ' – william

+0

@william:當然,你可以使用'click'或看到編輯。 – Sreekumar

相關問題