2014-08-30 80 views
0

我有一個linkbutton做一些任務,當我點擊按鈕,我需要在模態彈出式顯示結果.. 我在代碼中動態創建按鈕,並將事件附加到它太像這樣asp.net linkbutton和jquery模式彈出

 LinkButton lnkBtn = new LinkButton(); 
     lnkBtn.CssClass = "lnk"; 
     lnkBtn.Text = Server.UrlDecode(r.URL); 
     lnkBtn.CommandArgument = r.OriginalSentence; 
     lnkBtn.Command += new CommandEventHandler(lnkBtn_Command); 
事件

我不得不從網址下載HTML和模態div標籤顯示它

private void lnkBtn_Command(object sender, CommandEventArgs args) 
{ 
    string URL = ((LinkButton)sender).Text; 
    string HtmlDoc = DownloadURL(URL); 
    string HighlightedHTML = HtmlDoc.Replace(((LinkButton)sender).CommandArgument, "<span     style='background-color:red;'>" + ((LinkButton)sender).CommandArgument + "</span>"); 
    popup.InnerHtml = HighlightedHTML; 

    StringBuilder strScript = new StringBuilder(); 


    strScript.Append("$(" + "\".lnk\"" + ").click(function() {"); 
    strScript.Append("$(\"#popup\").dialog('open');"); 
    strScript.Append(" return false; });"); 



    Page.ClientScript.RegisterStartupScript(this.GetType(), "Script", strScript.ToString(), true); 


} 

每一件事情做會 ,我有這個問題點擊按鈕兩次,首先觸發事件並註冊腳本 第二次顯示模式, 我需要顯示從第一次點擊的模式.. 請幫助

回答

0

你需要把你的代碼,在一個頁面事件像生成JavaScript Page_Init。這樣,它將在每個頁面加載時注入JavaScript,而不是鏈接點擊。

+0

感謝亞歷克斯,按鈕創建代碼是在Page_Load中,但我有一個循環產生多個按鈕,每個按鈕應該突出顯示一些文本,所以點擊其中一個按鈕後應該出現對話框。 – 2014-08-31 07:01:15

0

我解決了使用WEBMETHOD和Ajax請求

[WebMethod] 
public static string Highlight1(int _SentenceID) 
{ 
    var QSentence = DocResultsBLL.ResultsList.Find(a => a.OriginalSentenceID == _SentenceID); 
    string URL = QSentence.URL; 
    string HtmlDoc = DownloadURL(URL);//search.Items[0].Link); 
    string HighlightedHTML = HtmlDoc.Replace(QSentence.OriginalSentence, "<span style='background-color:red;'>" + QSentence.OriginalSentence + "</span>"); 
    // popup.InnerHtml = HighlightedHTML; 
    return HighlightedHTML; 

} 

然後我顯示該對話框的問題

$(".lnk").click(function() { 
     $.ajax({ 
      type: 'POST', 
      url: 'Google_Results.aspx/Highlight1', 
      contentType: 'application/json; charset=utf-8', 
      data: '{ _SentenceID:'+ $(this).attr('id') +'}', 
      dataType: 'json', 
      success: function (msg) { 
       // alert('Hello'); 
       document.getElementById("popup").innerHTML = msg.d; 
       // $("#popup").html(msg.d); 
       $("#popup").dialog("open"); 
       $("#popup").bPopup({ 
        //   speed: 650, 
        //   transition: 'slideIn', 
        //   transitionClose: 'slideBack' 
        //  // modalColor: 'greenYellow' 
        easing: 'easeOutBack', //uses jQuery easing plugin 
        speed: 450, 
        transition: 'slideDown' 
       }); 
       return false; 
      }, 
      failure: function (response) { 
       alert('error'); 

      } 

     }); 
     return false; 

感謝