我有个问题.
在我的项目中,我在更新面板中放置了一个下拉列表.我想要做的是从下拉列表中选择一个值并在会话中使用它.
但无论我做什么,它总是会给我空值,因为没有选中"启用AutoPostBack".当我这样做时,它会刷新页面,所以这不是我想要的.
我怎么解决这个问题?
有任何想法吗...
如果我正在开发一个asp.Net应用程序,有些情况下我应该忘记MS Ajax UpdatePanels并且更喜欢jQuery.Ajax来更新我的页面的某些部分吗?
谢谢
我在使用asp.net和更新面板时遇到了一些麻烦.问题是,每次从更新面板发生部分回发时,页面都会滚动回顶部.在我的大多数页面上,这不是一个大问题,但在某些页面上可能会花很长时间.然后,当用户在页面底部时,我会RadListView在其中显示jQuery弹出窗口,用户可以在此列表中选择元素.但是单击此元素会导致部分回发和页面跳转回到顶部.
我通过互联网查看,无法找到解决问题的方法.当然设置MaintainScrollPositionOnPostback什么都不做.
有谁知道任何可以帮助我解决这个问题的东西?
干杯,Pako
我在页面上有两个更新面板.我想在不同的条件下更新它们的两个条件.但我不知道为什么会发生这种情况.我已为两者指定了触发器,但没有帮助,下面是我的代码.
请让我知道我哪里错了.
实际上,当第一个更新面板中的selectedindexchange被触发时,第一个更新面板中有三个下拉列表,然后第二个更新面板的内容也会更新.
<asp:UpdatePanel ID="upSearch" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional">
<ContentTemplate>
<div style="float: left; width: auto;">
<asp:DropDownList ID="ddlLocation" runat="server" Width="206px" DataTextField="LocationName"
DataValueField="Locationid" AutoPostBack="true" OnSelectedIndexChanged="ddlLocation_SelectedIndexChanged">
</asp:DropDownList>
<asp:DropDownList ID="ddlArea" runat="server" Width="200px" DataTextField="AreaName"
DataValueField="Areaid" AutoPostBack="true" OnSelectedIndexChanged="ddlArea_SelectedIndexChanged">
</asp:DropDownList>
<asp:DropDownList ID="ddlRoom" runat="server" Width="200px" DataTextField="RoomName"
DataValueField="Roomid">
</asp:DropDownList>
</div>
<div style="float: left; width: 80px;">
<asp:Button ID="btnSearch" runat="server" Text="Search" ValidationGroup="vgSearch"
CssClass="bluebtn" UseSubmitBehavior="false" OnClick="btnSearch_Click" />
</div>
<div style="float: left; width: 99%; padding: 5px 0px;">
</div>
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
第二个如下: -
<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional">
<ContentTemplate>
<asp:Calendar ID="calSchedule" runat="server" …Run Code Online (Sandbox Code Playgroud) 我有页面A和页面B.您可以在页面A中执行以下操作:
Response.Redirect.现在问题如下:
会发生什么:网页A 的初始状态 显示.
我想要发生的事情:显示最终状态的页面A (即,在列表框中选择"正确"项目).
我知道ScriptManager.AddHistoryPoint!据我所知,它并没有解决我的问题:
AddHistoryPoint 每次在第A页上完成某些操作时我都可以打电话.这很糟糕,因为它会在浏览器历史记录中包含大量条目.(每次选择不同的列表框项时都会有一个新条目.)但这正是我想通过使用UpdatePanel来避免的!当然,如果有一种ReplaceLastHistoryPoint方法,那将是完美的,但我没有找到一个......
我试图在AddHistoryPoint之前调用Response.Redirect,只保存页面A 的最后一个状态,但是,唉,这不起作用(没有保存历史记录点).考虑到Response.Redirect工作原理,这并不奇怪.
我错过了一些解决方案吗?我正在使用.NET 3.5SP1,以防万一.
在ASP.NET网页上,我有一个UpdatePanel.在这个UpdatePanel中,我有一个"添加"按钮,可以动态地将我创建的任何数量的用户控件添加到PlaceHolder.用户控件包含标签,按钮和第三方控件.用户控件内的按钮用于从父面板中删除该特定用户控件."添加"和"删除"功能都可以正常工作.但是,"添加"按钮上的事件处理程序有时会停止工作,没有明显的模式或原因.如果我添加2个UC并删除1,有时"添加"按钮会继续工作,有时则不会.寻找原因的任何步骤都会有所帮助.
对于上下文,UC被称为"Whereas",因为它们是解析中的WHEREAS子句.以下是代码,仅限于相关内容:
Edit.aspx
...
<asp:ScriptManager ID="sm1" runat="server"></asp:ScriptManager>
<asp:Panel ID="pnlMain" runat="server">
<div class="form-horizontal">
<asp:UpdatePanel ID="upnlWhereas" runat="server">
<ContentTemplate>
<asp:PlaceHolder ID="phWhereas" runat="server"></asp:PlaceHolder>
<div class="control-group">
<asp:Label ID="lblAddWhereas" AssociatedControlID="btnAdd1Whereas" CssClass="control-label" runat="server"></asp:Label>
<div class="controls">
<asp:Button ID="btnAdd1Whereas" CssClass="btn" UseSubmitBehavior="false" Text="Add Whereas" runat="server" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Panel>
...
Run Code Online (Sandbox Code Playgroud)
Edit.aspx.vb(类是Edit2)
...
Private Property ControlsList As List(Of String)
Get
If ViewState("ControlsList") Is Nothing Then
ViewState("ControlsList") = New List(Of String)
End If
Return CType(ViewState("ControlsList"), List(Of String))
End Get
Set(ByVal Value As List(Of String))
ViewState("ControlsList") = Value
End …Run Code Online (Sandbox Code Playgroud) 我在更新面板内有一个图像控件,在页面加载我正在设置它的URL.
page_load中的代码
string url = "example.com";
Image1.ImageUrl = url;
Run Code Online (Sandbox Code Playgroud)
在aspx中的updatepanel内部
<asp:Image ID="Image1" runat="server" CssClass="image" />
Run Code Online (Sandbox Code Playgroud)
我还在更新面板内有几个提交按钮,我正在按钮点击更新一些texbox和标签.
但是这会导致整个页面刷新.(滚动条上升.)
如果将图像移到更新面板之外,则不会发生这种情况.问题是如果我删除updatepanel之外的图像,布局根本不起作用.谁能帮我这个?谢谢.
UPDATE
我意识到这只发生在Chrome中.有没有人有想法?
更新2 在该页面上,我通过从updatepanel中删除img解决了该问题.让布局工作真是太棒了,但它确实奏效了.
但是我有另一个页面,当用户点击加载更多时,我在updatepanel中添加新的imgs.同样的交易,显然我这次不能将图像移出更新面板.这是代码.
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<!--Recent Uploads-->
<div class="uploads">
<h2>Uploads</h2>
<asp:UpdatePanel ID="RecentUpload" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="loaduploads"/>
</Triggers>
<ContentTemplate>
<asp:Button CssClass="uploadButton" ID="loaduploads" runat="server" Text="Load More" OnClick="loaduploads_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
Run Code Online (Sandbox Code Playgroud)
代码隐藏(上传索引是会话变量)
upload_index += 5;
for (int i = 0; i < upload_index; i++)
{
try
{
SSImage img = images[i];
HyperLink imglink = new HyperLink();
imglink.NavigateUrl = "/Image.aspx?id=" …Run Code Online (Sandbox Code Playgroud) 我在UpdatePanel_2中有一个下拉列表,当在UpdatePanel_1中单击Button_1时,它会被填充.
我的ddlist标记是,
<asp:DropDownList id="drop1" runat="server" EnableViewState="true" AutoPostBack="true" OnSelectedIndexChanged="Drop1_SelectedIndexChanged" />
Run Code Online (Sandbox Code Playgroud)
然后代码背后是,
protected void Drop1_SelectedIndexChanged(object sender, EventArgs e)
{ }
Run Code Online (Sandbox Code Playgroud)
我也尝试将AutoPostback = true放到我的DropDownList中,仍然没有成功.
我还添加了triggre来更新面板2,但没有增益,
<Triggers>
<asp:AsyncPostbackTrigger ControlID="drop1" EventName="SelectedIndexChanged" />
</Triggers>
Run Code Online (Sandbox Code Playgroud)
我在使用按钮填充DropDownList而不是PAGE LOAD METHOD请在回答之前阅读.谢谢
我需要btnAddRow在UpdatePanel中添加LinkButton ,upSectionB但问题是我在加载期间遇到此错误:
在UpdatePanel'updownSectionB'中找不到ID为"btnAddRow"的控件.
我简化的aspx
<asp:UpdatePanel ID="upSectionB" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
Request Budget (USD)
<asp:TextBox ID="txtTotal" runat="server"></asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnAddRow" EventName="Click" />
//Poses problems when I uncomment the trigger above. btnAddRow is a LinkButton inside upSectionC
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="upSectionC" runat="server">
<ContentTemplate>
<asp:GridView ID="gvCostBreakdown" runat="server" AutoGenerateColumns="false" ShowFooter="true">
<Columns>
<asp:TemplateField HeaderText="Amount">
<ItemTemplate>
<asp:TextBox ID="txtAmount" runat="server" Text='<%# Eval("BudgetUSD") %>'></asp:TextBox>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtAmountTotal" runat="server" Enabled="false"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Delete" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="btnDeleteRow" runat="server" ToolTip="Delete" OnClick="btnDeleteRow_Click" CommandArgument='<%# Eval("Id","{0}") …Run Code Online (Sandbox Code Playgroud) 我正在使用C#和Visual Studio 2008 SP1开发ASP.NET应用程序.我正在使用WebForms.
我有一个带有两个UpdatePanel的ASPX页面,一个在左边,它包含一个TreeView,另一个在右边,我动态加载用户控件.
我在右侧面板上使用的一个用户控件具有FileUpload控件和一个用于将该文件保存在服务器上的按钮.保存控件的ascx代码是:
<asp:UpdatePanel ID="UpdatePanelBotons" runat="server" RenderMode="Inline"
UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="Save" runat="server" Text="Guardar"
onclick="Save_Click" CssClass="button" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="Save" />
</Triggers>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
我做了一个完整的回发,将文件上传到服务器并将其保存到数据库.但我总是在FileUpload.HasFile上得到False.
我的问题是正确的UpdatePanel.我需要它动态加载用户控件.此面板有三个UpdatePanel,用于加载我使用的三个用户控件.
也许我可以使用异步文件上传器或删除正确的更新面板并执行完整回发以动态加载控件.
有什么建议?
更新:
RegisterPostBackControl 工作 ...第二次点击保存按钮.第一次FileUpload.HasFile为FALSE,第二次为TRUE.
第二次更新
第一次单击时我还检查了ScriptManager.IsInAsyncPostBack并且为FALSE.我不明白任何事!
为什么?
第一次加载用户控件的代码,以及每次回发的代码是:
DynamicControls.CreateDestination ud =
this.LoadControl(ucUrl) as DynamicControls.CreateDestination;
if (ud != null)
{
Button save = ud.FindControl("Save") as Button;
if (save != null)
ScriptManager1.RegisterPostBackControl(save);
PanelDestination.Controls.Add(ud);
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
updatepanel ×10
asp.net ×8
c# ×6
.net ×2
ajax ×2
asp.net-ajax ×2
triggers ×2
events ×1
file-upload ×1
gridview ×1
html ×1
javascript ×1
jquery ×1
vb.net ×1
webforms ×1