Javascript __doPostBack, кажется, не работает для меня - PullRequest
1 голос
/ 16 апреля 2010

Я использую yui datatable в своем приложении asp.net ... У меня есть кнопка ссылки в одном из моих столбцов, и она работает нормально, но не выполняет обратную передачу скрытой кнопки ...

 myDataTable.subscribe("linkClickEvent", function(oArgs) {
            javascript: __doPostBack('ctl00_ContentPlaceHolder1_Button1', '');
            YAHOO.util.Event.stopEvent(oArgs.event);
        });

и на моей странице

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button"
   style="display:none;" />

 protected void Button1_Click(object sender, EventArgs e)
 {
    DownloadFile(Hfhref.Value, true);
 }

Я использовал точку останова, но, похоже, не получил __dopostback .. Любое предложение ...

Ответы [ 4 ]

3 голосов
/ 16 апреля 2010

добавить уникальный идентификатор на __doPostBackMethod от Button.

2 голосов
/ 16 апреля 2010

Я только что сделал это, и это сработало,

document.getElementById("ctl00_ContentPlaceHolder1_Button1").click();

просто позвоните click() моя кнопка сработала ...

Я хочу знать, работает ли он во всех браузерах ...

1 голос
/ 15 апреля 2011

Если вы используете платформу ASP.Net 4.0, добавьте ClientIDMode="Static" к вашей декларации управления, и вы можете напрямую позвонить __doPostBack('Button1','');.

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button"
   style="display:none;" ClientIDMode="Static" />

Атрибут ClientIDMode является новым для 4.0 и позволяет вам иметь известный уникальный идентификатор для элементов управления. Вызов обратной передачи для элемента управления будет запускать любой метод обратной передачи, определенный в атрибуте OnClick элемента управления.

0 голосов
/ 16 апреля 2010

В вашей разметке убедитесь, что правильно обработчик OnClick.

onclick="Button1_Click"

должно быть

OnClick="Button1_Click"

Как вы написали, onclick будет интерпретироваться как атрибут элемента управления, а onclick="Button1_Click" будет отображаться в браузере, а не обрабатываться на стороне сервера.

...