[英]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.