我是几个不同的Web技术堆栈中经验丰富的Web开发人员.我目前在.Net工作,我对Partial Postback感到好奇.
我理解Partial Postback的功能是什么以及如何以编程方式使用它,但我不喜欢使用我不理解的技术,如何实现Partial Postback.
我理解HTTP请求和异步请求,让我对Partial Postback感到困惑的是它似乎都是.
也许我只是遗漏了一些东西,但在我看来,Partial Request同时执行这两项操作,首先触发异步POST请求但浏览器似乎知道并且活动指示器开始旋转,这通常仅在HTTP请求页面期间发生渲染.
那么,任何人都可以了解微软如何在HTTP请求级别实现部分回发?
我有一个用户控件,带有链接按钮(用于分页)和更新面板内的转发器.分页工作正常,但每次点击进入下一页时都会导致整页回发.
更新面板如下所示:
<asp:UpdatePanel ID="up1" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:Repeater ID="rptOrganizations" runat="server">
<HeaderTemplate>
<table>
<thead>
<tr>
<th>Organization</th>
<th>State</th>
<th>Accredited Since</th>
</tr>
</thead>
</table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Literal ID="ltlInstitution" runat="server" />
</td>
<td>
<asp:Literal ID="ltlState" runat="server" />
</td>
<td>
<asp:Literal ID="ltlAccreditedDate" runat="server" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<uc2:RepeaterPaging ID="rpPager" runat="server" PageSize="10" OnNextButtonClickEvent="btnNext_Click" OnPreviousButtonClickEvent="btnPrev_Click" />
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
并且用户控件的内容如下所示:
<asp:LinkButton ID="btnPrev" runat="server" OnClick="btnPrev_Click">Previous</asp:LinkButton> |
<asp:LinkButton ID="btnNext" runat="server" OnClick="btnNext_Click">Next</asp:LinkButton>
<asp:Literal ID="ltlNumResults" runat="server" /> results returned.
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试为用户控件添加异步回发触发器,这会导致异步回发,但不会更新更新面板中的其余文本.换句话说,发生异步回发并显示下一页,但转发器中的原始文本也位于其下方.
我还确认我的链接按钮上设置了IDS,因为这可以在更新面板中触发完整的回发.
我尝试更改更新面板模式(Always,Conditional,ChildrenAsTriggers等).
这些都没有区别 - 实际上导致异步回发的唯一方法是使用触发器,但更新面板中的其余内容不会更新,因此我得到重复的内容.有任何想法吗?
我有一个asp.net页面,其中包含c#代码隐藏,它在Page_Load()方法中执行一些操作(比如查询数据库并进行一些其他调用以使用数据填充对象).然后我在页面上显示这些数据.一切正常.我设置了几个回发,以便在单击列表框中的值时,面板控件将填充相应对象的其余数据.我认为回发是正确的方法,但这会导致重新调用(整个类?),重新初始化我的对象并销毁我想要保留的数据.
某种形式的部分回发会解决这个问题,还是有更好的方法来实现我想要做的事情?
我不想每次调用回发时重新填充对象,因为这需要数据库查询,我想避免每次点击某些内容时重新查询...
我发现了很多关于持久化Javascript对象的问题,但似乎并没有真正解决这个问题.我正在使用.Net 4.0
我无法使用.Net部分回发获得角度.
问题与此基本相同:在部分回发后重新初始化角度绑定
基本上我有一个选项卡,我有一个角度应用程序,然后我有第二个选项卡与一些c#控件,我必须在选项卡之间进行部分回发,当我回到我的应用程序,没有什么.
我尝试使用ngView进行路由然后我尝试过$route.reload()(它进入控制器,我可以看到模板被拉下来,但页面上的结果是无).然后我尝试compile(templateCache.get(lazyTableControllerRoute.current.templateUrl))(scope)了这里提到的.没有.
请帮忙 :)
每次回发后我都会在页面上显示这个html:
LiteralControl lazyControl = new LiteralControl("<div ng-app=\"LazyLoadingApp\" style=\"padding:10px\" ng-controller=\"LazyTableController\" ng-view><lazy-table> </lazy-table></div>");
Controls.Add(lazyControl);
Run Code Online (Sandbox Code Playgroud)
还有一些配置常量就好templateUrl.
这是我的代码:
var app = angular.module('LazyLoadingApp', ['ui.bootstrap', 'ngRoute'], function ($interpolateProvider) {
$interpolateProvider.startSymbol('[[');
$interpolateProvider.endSymbol(']]');
});
app.config(function ($routeProvider, $locationProvider, tableTemplateUrl) {
$routeProvider.when('/Page.Web.UI/sptl_project.aspx', {
controller: 'LazyTableController',
templateUrl: tableTemplateUrl,
});
// configure html5 to get links working on jsfiddle
$locationProvider.html5Mode(true);
});
//**This objects I am using after partial postback to check in the console if e.g. $route.reload() …Run Code Online (Sandbox Code Playgroud) 所以我有这个Checkboxlist,我想为其中的元素实现Select All功能.我将它放在UpdatePanel中,但每次单击一个项目时,都会重新加载整个页面.这是我的代码:
<asp:UpdatePanel ID="CBLPanel" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
<ContentTemplate>
<div class="LeftAligned">
<asp:Label ID="FilterLabel" runat="server" Text="Filter by:" />
<asp:DropDownList runat="server" ID="FilterDDL" AutoPostBack="true" OnSelectedIndexChanged="FilterDDL_SelectedIndexChanged" />
<asp:ImageButton ID="FB" runat="server" ImageUrl="~/images/filter.png" AlternateText="VALUE"
CssClass="filter_button" OnClick="FB_Click" />
<div onmouseout="javascript:bMouseOver=false;" onmouseover="javascript:bMouseOver=true;"
class="filter_div">
<asp:CheckBoxList AutoPostBack="true" ID="FilterCheckBoxList" ClientIDMode="Static"
runat="server" CssClass="filter_checklist collapsed" OnSelectedIndexChanged="FilterCheckBoxList_Selected">
</asp:CheckBoxList>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
我虽然我应该将ChildrenAsTriggers设置为false,这样我只会从代码更新,但它似乎不起作用.
我在下面的外部文件中有这个jquery函数.所以在部分回发之后jquery不起作用.我需要在部分回发时从服务器端加载jquery.
有人可以告诉我在这段代码中需要调用的内容以及如何加载jquery
jQuery(function ($) { var userAgent = navigator.userAgent.toLowerCase(); var browserVersion = (userAgent.match(/.+(?:rv|webkit|khtml|opera|msie)[\/: ]([\d.]+)/) || [0, '0'])[1]; var isIE6 = (/msie/.test(userAgent) && !/opera/.test(userAgent) && parseInt(browserVersion) < 7 && (!window.XMLHttpRequest || typeof (XMLHttpRequest) === 'function')); var body = $('body'); var currentSettings; var callingSettings; var shouldResize = false; var gallery = {}; var fixFF = false; var contentElt; var contentEltLast; var modal = { started: false, ready: false, dataReady: false, anim: false, animContent: false, loadingShown: false, transition: false, resizing: false, closing: false, …Run Code Online (Sandbox Code Playgroud) 是否存在差异,或者术语是同义词?
很抱歉,如果之前有人询问,我只能找到完整回发和回调之间的区别.我已经知道完整的回发是如何不同的.
在使用ASP.Net 2.0时,如果这很重要.(顺便说一句,这有关系吗?或者这些术语是否适用于任何基于Web的应用程序?)
提前致谢.
通常,在调试在 ASP.NET 部分 postack(UpdatePanel、具有 AJAX 行为的其他控件)内部执行的服务器端 VB.NET/C# 代码期间,我会收到以下客户端错误:

此时我不关心客户端(并且在运行时这不会发生)。这只是调试过程中的一个主要烦恼 - 有没有办法防止它?
我有两个DropDownLists.第一个是可见的,第二个不是.我想要这样的东西:
我不想有完整的回发.最终的效果应该是:
从第一个DDL中选择值,然后在下面,向下滑动第二个DDL,该DDL将被填充.
我不知道如何开始.
我正在寻找最佳实践建议.
我有一个带有Partial的ShoppingBag控制器,列出了用户包里的所有物品.在此部分中,您可以通过表格帖子从包中删除商品.
Partial已放置在Master Page中,该Master Page由Controller中的每个视图引用.当一个项目从用户的包中删除时,我希望将用户重定向到原始视图.我对如何用JavaScript实现这一点感到非常高兴,这是我不清楚的非JavaScript.
我是:
任何帮助将不胜感激.
丰富
partial-postback ×10
asp.net ×9
c# ×3
postback ×3
updatepanel ×2
angularjs ×1
asp.net-ajax ×1
asp.net-mvc ×1
callback ×1
checkboxlist ×1
debugging ×1
javascript ×1
jquery ×1