我有一个包含更新面板和计时器的页面.页面根据计时器每5分钟更新一次.如果另一个页面(从原始页面启动)关闭,我也有一些javascript强制更新面板上的__doPostBack.我认为我遇到的问题有时强制回发似乎会中断由计时器触发的回发,这会产生错误.有没有办法取消当前的回发并启动另一个?或检测回发是否正在进行中?这应该是一个问题
我有两个列表框执行添加删除项目功能,由四个按钮控制和o每个按钮点击那里碰巧回发但我不希望它是闪烁我正在使用这样的更新面板但它这个问题让我解释了这个问题
<asp:UpdatePanel ID="button" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:Button ID="ButtonAdd" runat="server" Text=">" OnClick="ButtonAdd_Click" Width="50px"/><br />
<asp:Button ID="ButtonRemove" runat="server" Text="<" OnClick="ButtonRemove_Click" Width="50px"/><br />
<asp:Button ID="ButtonAddAll" runat="server" Text =">>>" OnClick="ButtonAddAll_Click" Width="50px"/><br />
<asp:Button ID="ButtonRemoveAll" runat="server" Text ="<<<" OnClick="ButtonRemoveAll_Click" Width="50px"/>
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud) 我一直在开发一个非常大的应用程序,几天前我将它上传到我的服务器.现在我发现它有几个内存泄漏 - 哦哦.我的服务器在1GB内存上运行Windows Server 2008.当我在线有0人时,只使用550-600mb.当一个人上线时,内存开始暴涨,如果3-4人在线,则使用1GB内存.
该应用程序是在ASP.NET中使用AJAX进行的.它有许多每秒运行的更新面板和相当多的javascript.它始终使用5-7个会话.我使用LINQ to SQL作为数据库通信.
我在服务器上尝试过perfmon.exe,我发现:
我还用Visual Studio对我的程序进行了分析.我的总运行时间的8%是在.ToList()方法中完成的,这正是由LINQ to SQL引起的.
我的理论......
(1)Linq to SQL dataContext
这可能是一个疯狂的事情,但是:在我的数据访问层中,我有很多方法:
其中每个都有以下初始化:
GameDataContext db = new GameDataContext();
Run Code Online (Sandbox Code Playgroud)
这意味着上述陈述几乎每秒或更长时间.
(2)没有对象实现IDisposable
我必须诚实:我从未使用过IDisposable.据我所知,这可能是个问题.
另外,如果这是泄漏,哪些类应该实现呢?我没有任何I/O工作或其他工作,只有DataContext.
(3)UpdatePanels和jQuery的负载
我有一些担心更新面板可能会给性能带来问题,但我不知道如何检查它.
所以我的问题是:关于内存泄漏可能是什么的任何想法?有关如何查找内存泄漏的任何想法?关于如何解决它的任何想法?
我很想听到有上述情况经验的人的来信!
谢谢,拉尔斯
仅当我的页面处于编辑模式时,我才使用以下脚本调用 javascript 函数:
protected void Page_PreRender(object sender, EventArgs e)
{
if (EditMode)
ClientScript.RegisterStartupScript("".GetType(),
"EnableSelectableKey",
"EnableSelectableForRolesLists();",
true);
}
Run Code Online (Sandbox Code Playgroud)
我添加了更新面板后,脚本没有被调用。
如何解决问题?
我已经看到了一些这样的例子,我尝试使用以下代码.我正在尝试在选择portraitB时更改内容窗格,然后运行其他类文件.
//imported java libraries
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.UIManager;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.Dimension;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class birthdayCardGUI implements ActionListener
{
//Welcome Screen
JPanel welcomeP, welcomeImageP, portraitP, landscapeP, backP;
JLabel welcomeImageL;
JButton portraitB, landscapeB, backB;
//Portrait Screen
JTabbedPane tabbedPane;
JPanel portraitOne;
JLabel test;
public JFrame frame;
//Colours
int colourOne = Integer.parseInt( "c1c7f9", 16);
Color Blue = new Color( colourOne );
public birthdayCardGUI() throws Exception
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
JFrame frame = new JFrame("birthday Card Maker!"); …Run Code Online (Sandbox Code Playgroud) 我正在尝试更新正在显示的选项卡,但它似乎要等到方法结束然后更新.有没有办法让标签显示立即更新?
以下是我遇到此问题的代码示例:
private static void someButtonMethod()
{
Button = new JButton("My Button");
Button(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
tabs.setSelectedIndex(1);
// Do some other things (In my case run a program that takes several seconds to run).
runProgram();
}
});
}
Run Code Online (Sandbox Code Playgroud) 我在div弹出窗口中的UpdatePanel中有一个链接按钮.在Button_Click上,我希望通过javascript打开一个新窗口.我尝试了ScriptManager.RegisterStartupScript以及ScriptManager.RegisterClientScriptBlock,但是Window没有打开.
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<form class="message-form" action="#">
<fieldset>
<asp:LinkButton ID="LinkButton1" runat="server" class="btn-facebook" Text="facebook" OnClick="LinkButton1_Click"></asp:LinkBu
tton>
<label for="TextBox1">Or send a message on Blissdate here:</label>
<div class="textarea">
<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" Rows="10" Columns="30"></asp:TextBox><asp:Label ID="lbl" runat="server" />
</div>
<div class="btn-holder">
<asp:LinkButton ID="LinkButton2" runat="server" class="btn-send" Text="send" OnClick="LinkButton2_Click"></asp:LinkButton>
</div>
</fieldset>
</form>
Run Code Online (Sandbox Code Playgroud)
protected void LinkButton1_Click(object sender, EventArgs e)
{
DataRow[] row1 = ds.Tables[0].Select("FB_Id='" + HiddenField3.Value + "'");
string url = row1[0].ItemArray[3].ToString();
lbl.Text = url;
//ScriptManager.RegisterClientScriptBlock(this, GetType(), "newPage", "window.open('" + url +');", true);
ScriptManager.RegisterClientScriptBlock(this, GetType(), "newpage", …Run Code Online (Sandbox Code Playgroud) 我花了最近两天试图将一些血腥数据导出到Excel.经过大量研究后,我确定最好和最常用的方法是使用HttpResponse标题,如下面的代码所示.在调试模式中经过无数次之后,我已经确认数据实际存在,并且按照我想要的方式进行过滤和排序.但是,它不会作为Excel文件下载,也不会做任何事情.
我怀疑这可能与我UpdatePanel或可能ImageButton没有正确回复有关,但我不确定.我究竟做错了什么?请帮我调试这个问题.我会永远感激.谢谢.:)
标记
<asp:UpdatePanel ID="statusUpdatePanel" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnExportXLS" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize="10"
AllowSorting="True" DataSourceID="GridView1SDS" DataKeyNames="ID">
</asp:GridView>
<span><asp:ImageButton ID="btnExportXLS" runat="server" /></span>
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
代码隐藏
Protected Sub ExportToExcel() Handles btnExportXLS.Click
Dim dt As New DataTable()
Dim da As New SqlDataAdapter(SelectCommand, ConnectionString)
da.Fill(dt)
Dim gv As New GridView()
gv.DataSource = dt
gv.DataBind()
Dim sw As New IO.StringWriter()
Dim hw As New System.Web.UI.HtmlTextWriter(sw)
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("content-disposition", "attachment;filename=Report.xls")
Response.Charset = String.Empty …Run Code Online (Sandbox Code Playgroud) 我试图从asp服务器按钮的onClick事件调用javascript函数.我在更新面板中有此按钮和标签.
在aspx中:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="Button1" runat="server"
style="z-index: 1; left: 49px; top: 119px; position: absolute; height: 26px;" Text="Button"
onclick="Button1_Click"/>
<asp:Label ID="Label1" runat="server" Text="l1"
style="position:absolute; top: 123px; left: 127px;"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
代码背后:
protected void Button1_Click(object sender, EventArgs e)
{
ScriptManager.RegisterClientScriptBlock(this, typeof(Button), "me", "me()", true);
}
Run Code Online (Sandbox Code Playgroud)
aspx中的Javascript:
<script type="text/javascript">
function me()
{
document.getElementById('<%= Label1.ClientID %>').value="clicked";
}
</script>
Run Code Online (Sandbox Code Playgroud)
所有我想要做的就是点击按钮点击标签的值应该更改为'clicked',这不会发生,并且在firebug中也没有错误.我在哪里错了()?
PS:我这样做是为了学习从后面的代码调用javascript函数.因此,对代码的任何优化也是受欢迎的.(我实际上有很多代码要在JS函数中实现,所以请提供相应的建议)
我有以下情况:
一个link button触发通过.AsyncPostBackTrigger但仍然完整的帖子!
<asp:LinkButton ID="lbtnShowNotes" runat="server" CssClass="blue" OnClick="lbtnShowNotes_Click"> <img src="images/document_notes.png"/>notes</asp:LinkButton>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Panel ID="pnlNotes" runat="server" Visible="false">
<asp:Label ID="lbl_title" runat="server" Text="?????????"></asp:Label>
<asp:TextBox ID="txt_Coments" runat="server" Columns="70" Rows="5" TextMode="MultiLine"></asp:TextBox>
<asp:LinkButton ID="lbtnOkNotes" runat="server"><img src="images/tick.png" alt=""/></asp:LinkButton>
<asp:LinkButton ID="lbtnCancelNotes" runat="server" CausesValidation="False" OnClick="lbtnCancelNotes_Click"><img src="images/tick.png" alt=""/></asp:LinkButton>
</asp:Panel>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="lbtnShowNotes" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
所以这是我的函数,用于AJAX调用:
public void Button1_Click(object sender, EventArgs e)
{
Button1.Text = "surprise";
Label1.Text = "surprise!!";
Label2.Text = "surprise!!";
}
Run Code Online (Sandbox Code Playgroud)
这是aspx.Scriptmanager已设置.
<p>Síðast slóstu inn:
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
<asp:Label ID="Label2" runat="server" Text=""></asp:Label>
</p>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server">asd</asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server">dsa</asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Save" OnClick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
如果你愿意,你可以自己看看:http://webapplication44730.azurewebsites.net/data
正如你所看到的,按钮上的文字更改为"惊喜",但唱片公司,Label1并Label2在这之后应该会出现"旅店,"没有.
当UpdatePanel在服务器中调用方法时,例如此方法更改
textBox1.Text = "12312"
Run Code Online (Sandbox Code Playgroud)
并且这个textBox1不在updatePanle范围内,它不会改变文本,直到回发发生在页面上
所以我需要在计算并在服务器中查找文本框的文本之后,我需要强制页面进行回发
PLZ可以帮助吗?
updatepanel ×12
asp.net ×10
c# ×4
ajax ×2
java ×2
javascript ×2
vb.net ×2
ajax.net ×1
autopostback ×1
gridview ×1
idisposable ×1
jframe ×1
linkbutton ×1
linq-to-sql ×1
memory-leaks ×1
pane ×1
postback ×1
swing ×1
tabs ×1