gpt4 book ai didi

asp.net - 每次加载 DIV 时执行代码隐藏方法(ASP、ascx、ascx.cs)

转载 作者:行者123 更新时间:2023-11-28 18:15:07 28 4
gpt4 key购买 nike

这个想法是,这个 div 包含来自客户的报价,该报价是通过随机获取函数从服务器检索的,每隔几秒就会运行一个 jQuery 淡出该报价并显示另一个报价。

这是我的 .ascx 中的 Div 代码:

< div class="testimonial" ID="Fader" onload="runTestimonial">

<q>"<asp:Literal runat="server" ID="Quote"></asp:Literal>"</q>

</div>

代码隐藏 (.ascx.cs):

protected void runTestimonial(object sender, EventArgs e)
{ --lots 'o code--

Partnership partnership = Partnership.GetRandomTestimonial(cmPage.CMPageId);
if (partnership != null)
{
Quote.Text = partnership.Testimonial;
Visible = true;
}
}

我正在使用这个 jQuery 代码:

setInterval(
(function () {
$('#Fader').fadeOut('slow', function () {
setTimeout(function () { $('#Fader').load().fadeIn('slow'); }, 300);
});
})
, (200))

jquery 应该没问题。它链接到 Div 的 Fader ID 并进行淡入淡出和加载。

最初,div 使用具有相同结构的 Page_Load 方法生成引号,并且此方法有效。现在的变化是我需要在需要时调用它,不是在 Page_Load 上而是在 jQuery 刷新上。

到目前为止,我已经让 div 刷新进出,但它是空白的(如果我将其恢复为 on Page_Load 方法,相同的引号进出)。它没有到达 ASP 行或没有执行它。我无法让 runTestimonial 像 Page_Load 那样工作,可能是因为我不知道如何调用它。

我真的不知道如何做 C#、jQuery ASP 或代码隐藏的东西。请帮忙!

最佳答案

这些是您需要使用 jQuery 和 WebMethod 执行的步骤:

1) 您将把 runTestimonial() 函数更改为 WebMethod,它将返回一个字符串(随机证明)。所以你的函数签名看起来像这样:

[WebMethod]
public static string runTestimonial()
{
return randomTestimonial; //include your code
}

2) 在文件头部添加 jQuery 库。

<script src="http://code.jquery.com/jquery-latest.js"></script>

3) 创建一个将对您的网络方法执行 ajax 调用的函数。

function getTestimonial()
{
$.ajax({
type: "POST",
url: "Default.aspx/runTestimonial",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$("#Fader").html(msg); //msg contains the response from the server, this appends it to the div
}
});
}

4) 标记中的 div 将不是服务器控件,因此删除 onload。所以它看起来像这样:

<div class="testimonial" ID="Fader"></div>

5) 我们快完成了,只需确保在 setInterval 中调用 getTestimonial() 函数即可。

[WebMethod] 属性位于 System.Web.Services 库中,因此请确保将其包含在页面顶部:

using System.Web.Services;

就是这样,应该可以。

关于asp.net - 每次加载 DIV 时执行代码隐藏方法(ASP、ascx、ascx.cs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18004072/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com