【问题标题】:asp.net linkbutton and jquery modal popasp.net linkbutton 和 jquery modal pop
【发布时间】:2014-08-31 20:00:18
【问题描述】:

我有一个链接按钮来执行某些任务,当我单击该按钮时,我需要在模式弹出窗口中显示结果.. 我在代码中动态创建了按钮,并像这样将事件附加到它

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

如果我必须从 url 下载 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 jquery asp.net linkbutton


    【解决方案1】:

    您需要将生成 Javascript 的代码放在 Page_Init 等页面事件中。这样,它将在每个页面加载时注入 javascript,而不是在链接点击时注入。

    【讨论】:

    • 谢谢 Alex,按钮创建代码在 Page_Load 中,但我有一个循环来生成多个按钮,每个按钮都应突出显示一些文本,因此单击其中一个按钮后应出现对话框。
    【解决方案2】:

    我解决了问题 使用 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;
    

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多