2010-04-16 38 views
1

我在我的asp.net應用程序中使用yui datatable ...我在我的列中有一個鏈接按鈕,它工作正常,但不會執行隱藏回傳按鈕...JavaScript __doPostBack似乎並沒有爲我工作

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 ..任何建議...

+0

@Panidiya爲什麼你在前面輸入javascript:? – Aristos 2010-04-16 12:21:35

+0

@Aristos發佈也沒有工作.. – 2010-04-16 12:23:36

回答

2

我只是做這個和它的工作,

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

就叫click()我的按鈕,它的工作...

我想知道它是否適用於所有的瀏覽器...

+0

奇怪的是,這也適用於我。我說「奇怪」,因爲我無法讓__doPostBack爲ClientIDMode設置爲靜態的ASP.NET LinkBut​​ton工作。 – Jagd 2012-10-09 18:07:39

0

在您的標記,一定要正確ca選擇OnClick處理程序。

onclick="Button1_Click" 

應該

OnClick="Button1_Click" 

你寫它的方式,的onclick將被解釋爲控制的屬性和onclick="Button1_Click"將呈現給瀏覽器,而不是在服務器端被處理。

+0

@論文沒有爲我工作...但看看我的答案它的工作... – 2010-04-16 12:31:52

3

在Button中的__doPostBackMethod上添加唯一標識。

+0

我怎麼看不到? __doPostBack的第一個參數應該是Control的UniqueId,而不是ClientId。接得好。 – 2010-04-16 12:34:48

1

如果您使用的是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,並允許您爲控件擁有已知的唯一ID的選項。調用控件的回發將運行控件的OnClick屬性中定義的任何回發方法。