我正在审查一个Web应用程序已完成90%,但速度非常慢,即使在本地环境(Web服务器和数据库)中,事务也可能需要5-10秒才能完成.这种延迟的原因是它在所有地方都使用了updatepanels,我的意思是99.9%的所有数据库交互.我有什么选择来加速这个应用程序而不必重写整个应用程序?我的意思是我不介意在这里和那里改变一些东西,但是有很多功能依赖于这些事务(updatepanels).
海家伙,
是否可以在单个更新面板中向PostBackTrigger的ControlId属性添加多个控件(按钮)....
我有以下内容:
<asp:UpdatePanel ID="upd" runat="server">
<ContentTemplate>
<script> alert("execute again"); </script>
<asp:LinkButton ID="go" runat="server" Text="Exec JS" />
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
第一次页面呈现脚本时执行.如果我单击按钮导致回发,它不会再次执行.
有没有办法让它再次执行脚本?
我有以下UpdatePanel从ashx处理程序获取图像,所有这些都在页面刷新时正常工作.但是,当计时器触发时,标签会以当前时间刷新,但不会刷新图像.
<asp:UpdatePanel runat="server" id="TimedPanel" UpdateMode="Conditional">
<ContentTemplate>
<asp:Image ID="Image1" runat="server" Height="218px"
ImageUrl="~/getImage.ashx?cam=1" Width="303px" BorderWidth="10px" />
<asp:Timer ID="UpdateTimer" runat="server" interval="1250"
ontick="UpdateTimer_Tick" />
<asp:Label ID="DateStampLabel" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger controlid="UpdateTimer" eventname="Tick" />
</Triggers>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
计时器例程是:
protected void UpdateTimer_Tick(object sender, EventArgs e)
{
DateStampLabel.Text = DateTime.Now.ToString();
}
Run Code Online (Sandbox Code Playgroud)
为什么图像不刷新?
在母版页上,我的脚本管理器的enablepartialrendering为true。在页面中,我有一个用户控件,在此用户控件上是一个更新面板,其中Updatemode是有条件的。
它是大约两个列表框,它们通过单击图像按钮将项目从左列表框切换到右列表框。(这很好)
这两个图像按钮位于样式表的div块中。我为他们使用postbacktrigger。整页仍在刷新,我在做什么错?
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DoubleListBox.ascx.cs"
Inherits="site.Controls.DoubleListBox" %>
<div class="formfield ff_itemswapper">
<asp:Label ID="Label" runat="server" />
<div class="itemswapper">
<asp:UpdatePanel ID="updatePanelListboxes" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:ListBox ID="lsbFrom" runat="server" CssClass="is_current"></asp:ListBox>
<div class="is_transfers" runat="server">
<asp:ImageButton ID="imb_Left" runat="server" CssClass="is_transfer_in" ImageUrl="../Images/gfx/arrow_left.png"
OnClick="imbLeft_Click" CausesValidation="False" />
<asp:ImageButton ID="img_Right" runat="server" CssClass="is_transfer_out" ImageUrl="../Images/gfx/arrow_right.png"
OnClick="imgRight_Click" CausesValidation="False" />
</div>
<asp:ListBox ID="lsbTo" runat="server" CssClass="is_source"></asp:ListBox>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="imb_Left" />
<asp:PostBackTrigger ControlID="img_Right" />
</Triggers>
</asp:UpdatePanel>
</div>
Run Code Online (Sandbox Code Playgroud)
列表框通过以下方式在aspx页中注册
<%@ Register Src="~/Controls/DoubleListBox.ascx" TagName="DoubleListBox" TagPrefix="lsb" %>
Run Code Online (Sandbox Code Playgroud)
并调用:
<lsb:DoubleListBox ID="lsbPractise" runat="server" />
Run Code Online (Sandbox Code Playgroud) 我想知道在JavaScript中初始化请求的Id更新面板.我写这个脚本但它返回undefined.
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
function InitializeRequest(sender, args) {
alert(sender.ID);
}
function EndRequest(sender, args) {
}
Run Code Online (Sandbox Code Playgroud)
sender不是空的它会返回,[object]但我怎么能得到ID?
编辑1)
我认为当它UpdatePanel在里面MasterPage它不起作用.这是我的代码:
<script type="text/javascript">
$(document).ready(function () {
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
function InitializeRequest(sender, args) {
var UpdPanelsIds = args.get_updatePanelsToUpdate();
alert(UpdPanelsIds[0]);
}
function EndRequest(sender, args) {
if ($('.AlarmLogo').val() == "3") {
alert('nima');
}
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
并且:
<form runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:Timer ID="timer" Interval="4000" runat="server" OnTick="timer_Tick" /> …Run Code Online (Sandbox Code Playgroud) 我遇到一个问题,我有一个使用计时器触发以使用新点更新ASP图的UpdatePanel(本质上是该指南,网址为http://www.4guysfromrolla.com/articles/121609-1.aspx,在“创建实数时间表”)。我遇到一个问题,每当计时器计时时,整个页面就会滚动到顶部。计时器计时时如何保持页面中的滚动位置?我已经尝试了http://www.4guysfromrolla.com/articles/111704-1.aspx上的说明以及其他几种类似的JavaScript解决方案,但是只要计时器计时,x和y变量就会消失。
码:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication4._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"></asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:ScriptManager ID="scmManager" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="updRealtimeChart" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:Chart ID="chtRandomData" ...></asp:Chart><br />
<asp:Repeater ID="valueRepeater"...></asp:Repeater>
<asp:Label ID="errorLabel" Font-Bold="true" Font-Size="Larger" ForeColor="Firebrick" BackColor="Khaki" runat="server"></asp:Label>
<asp:Timer ID="tmrRefreshChart" runat="server" Interval="300"></asp:Timer>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="periodUpdate" />
</Triggers>
</asp:UpdatePanel>
...etc rest of the page...
Run Code Online (Sandbox Code Playgroud)
编辑:在后面的代码中,我尝试了此操作以检查发生了什么:
public partial class _Default : System.Web.UI.Page
{
public int count = 0;
protected void Page_Init(object …Run Code Online (Sandbox Code Playgroud) 我有一个jQuery的可排序函数的问题.当我的页面使用更新面板进行回发时,动态表的排序不再起作用.按下图像按钮时会触发回发.按下图像按钮时,会有一个新行,其中包含子表.
我尝试了这3个JavaScript代码,但它们似乎只是第一次工作.打开子表后,它们不起作用.
你们可能知道一个JavaScript解决方案来解决这个问题吗?
我的第一次尝试:
$(function(){
$('table[id*="tbl_main"]').tablesorter();
});
Run Code Online (Sandbox Code Playgroud)
我的第二次尝试:
$(document).ready(function(){
$('table[id*="tbl_main"]').tablesorter();
});
Run Code Online (Sandbox Code Playgroud)
我的第三次尝试:
function pageLoad() {
$(function () {
$("#pager").unbind();
$('table[id*="tbl_main"]')
.tablesorter()
.tablesorterPager({ container: $("#pager") });
}
)}
Run Code Online (Sandbox Code Playgroud) javascript jquery updatepanel tablesorter jquery-ui-sortable
我有一个表格从我导航到我的形式,我有一个数量的文本框.以前我输入了数量.现在,IO有一个工作流程,这是其他形式出现的原因.现在,我已经完成了大量的编码,我的文本框文本改变了事件.当我response.redirect形成其他形式时,我也流量并将该数量放在该文本框中.现在我不想写一个新的代码(函数)来做同样的更新程序也将完成.以下是我试图执行的代码,并调用文本更改事件.我也在使用更新面板.那么,这就是为什么我的活动没有被解雇的原因.任何解决方案,.??
txt_Quantity.TextChanged += new EventHandler(txt_Quantity_TextChanged);
protected void txt_Quantity_TextChanged(object sender, EventArgs e)
{
}
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Panel ID="pnlGrid" runat="server" BorderColor="#339933" Height="400px" BorderStyle="Solid"
BorderWidth="2px" ScrollBars="Auto" Width="100%">
<div style="height: 40px; width: 100%; background-color: #339933;">
<%-- <img alt="imgrid" src="Images/grid_icon_green.png" style="padding-left: 10px;" />--%>
<span style="font-size: 20px; font-family: Calibri; color: White; padding-left: 5px; vertical-align: top">Asset Distribution</span>
</div>
<AjaxToolKit:TabContainer ID="TabContainer1" runat="server" Height="400px">
<AjaxToolKit:TabPanel ID="tab1" runat="server" TabIndex="0" HeaderText="Basic Information">
<ContentTemplate>
<table width="100%">
<tr>
<td class="r1">Last Code:
</td>
<td>
<asp:Label ID="Lbl_AssetDistriCode" runat="server"></asp:Label>
</td>
<td width="10%" …Run Code Online (Sandbox Code Playgroud) 我正在用VB.Net将noCAPTCHA reCAPTCHA实现到现有的表单中.它位于UpdatePanel中,并使用服务器端验证来验证用户是否已完成CAPTCHA(请参阅ASP.NET服务器端的验证回收2(无CAPTCHA reCAPTCHA))
如果用户未能通过CAPTCHA或任何其他经过验证的字段,则由于回发而无法重新加载CAPTCHA.如何解决这个问题,以便在回发后CAPTCHA不会消失?
我的CAPTCHA代码:
<div id="captcha" class="g-recaptcha" runat="server" data-sitekey="MySiteKey"></div>
Run Code Online (Sandbox Code Playgroud)
api.js放在Site.Master头中.
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
Run Code Online (Sandbox Code Playgroud)
扩大.
我尝试过一种解决方案但最终失败了.我补充道
<div id="captcha" class="g-recaptcha" runat="server" data-sitekey="MySiteKey"></div>
Run Code Online (Sandbox Code Playgroud)
到我的MasterPage的主体并将其扔在UpdatePanel中,给它一个id,等等.
<asp:UpdatePanel UpdateMode="Conditional" runat="server" ID="noCaptcha">
<ContentTemplate>
<asp:ScriptManager runat="server"></asp:ScriptManager>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
然后我在Site Master的代码隐藏中创建了一个函数,如下所示:
Public Sub TriggerCaptchaReload()
noCaptcha.Update()
End Sub
Run Code Online (Sandbox Code Playgroud)
当用户尝试验证并提交表单时
如果他们失败了,我试图让更新面板刷新
CType(Me.Page.Master, MasterPage).TriggerCaptchaReload()
Run Code Online (Sandbox Code Playgroud)
它位于后面的控制代码上.
这没用.也许有一个潜在的解决方案可以找到吗?
updatepanel ×10
asp.net ×9
ajax ×4
c# ×3
asp.net-ajax ×2
javascript ×2
image ×1
jquery ×1
listbox ×1
recaptcha ×1
refresh ×1
tablesorter ×1
textbox ×1
textchanged ×1
triggers ×1
vb.net ×1