2014-08-30 36 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; 

感谢