2012-10-05 4 views
1

я хочу назначить mouseclick событие asp.net panel:добавить Mouseclick события панели

protected void Page_Load(object sender, EventArgs e) 
{ 
    Panel p = new Panel(); 
    p.Click += new EventHandler(b_Click);//but, this doesn't compiles correctly 
} 
protected void b_Click(object sender, EventArgs e) 
{ 
    //C#code 
} 

Есть ли способ добавить событие щелчка на панель?

+1

Нет события Click для панели в asp.net, вы можете попробовать это с помощью Javascript: http://forums.asp.net/t/1315282.aspx/1/10 – Habib

ответ

5

Вот что вы можете сделать, чтобы сделать вашу панель кликабельным и обрабатывать события на стороне сервера.

Место панели в веб-форме

<asp:Panel runat="server" ClientIDMode="Static" ID="clickMe"> 
    Click here 
</asp:Panel> 

Добавить библиотеку сценариев JQuery на свою страницу.

<script src="http://code.jquery.com/jquery.min.js" language="javascript" 
     type="text/javascript"></script> 

Определить следующей сторону клиента обработчик события

$(document).ready(function() { 
    $("#clickMe").click(function() { 
     __doPostBack('clickMe', ''); 
    }); 
}); 

обрабатывать событие на стороне сервера.

protected void Page_PreRender(object sender, EventArgs e) 
{ 
    this.Page.ClientScript.GetPostBackEventReference(clickMe, ""); 
} 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Request.Form["__EVENTTARGET"] == "clickMe") 
    { 
     ClickMeOnClick(); 
    } 
} 

код в обработчик событий PreRender для рамки asp.net для отображения __doPostBack функции в Чиленто сторон. Если ваша страница содержит элемент управления, который вызывает автоматическую обратную передачу, вам не нужен этот код.

1

Mouseclick событие с JQuery 1.7:

$('#placeholderID').on('click', '#panelID', function(e){ }); 
0

Если вы хотите более простое решение, поставьте кнопку перед закрывающим тегом панели, сделайте, установите стиль css, чтобы покрыть всю панель и непрозрачность: 0, отрегулируйте z-индекс, чтобы не покрывать другие элементы, и просто используйте свой метод onclick в коде.

пример:

CSS:

btn-panel{ 
    position: fixed; 
    top: 0px; 
    left: 0px; 
    width: 100%; 
    height: 100%; 
    opacity: 0; 
    z-index: -1; 
} 

жерех:

<asp:Panel ID="myPanel" runat="server" > 

      //all your other elements here... 
      <asp:Button ID="Button1" runat="server" Text="" CssClass="btn-panel" 
       OnClick="YourButton_Click" /> 
</asp:Panel> 

код позади:

protected void YourButton_Click(object sender, EventArgs e) 
    { 
     // Your Code Here... 
    } 

Там вы идете, нет Javascript ни JQuery для выполнения магии !!

Смежные вопросы