簡體   English   中英

asp.net鏈接按鈕和jQuery模式彈出

[英]asp.net linkbutton and jquery modal pop

我有一個linkbutton來執行某些任務,當我單擊按鈕時,我需要在模式彈出窗口中顯示結果。.我在代碼中動態創建了按鈕,並像這樣將事件附加到它上

      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);


}

一切都將解決的問題是我必須單擊兩次按鈕,首先觸發事件並第二次注冊腳本以顯示模式,我需要從第一次單擊中顯示模式。

您需要將生成Javascript的代碼放在諸如Page_Init之類的頁面事件中。 這樣,它將在每次頁面加載時(而不是在鏈接點擊時)注入javascript。

我使用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;

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM