【江湖救急 高分求助】updatepanel 与 jQuery插件 jqTransform 结合,如何实现局部刷新

yixianggao 2011-11-24 02:57:03
问题描述:updatepanel中有若干下拉选框,页面初次加载时样式美化正常,当updatepanel局部刷新后,下拉选框的样式就变为缺省的html样式了。

当前进展:按照下文,尝试局部刷新后重新更新样式,但未能达到效果?!
解决在UpdatePanel内jquery easyui效果失效的方法
http://www.cnblogs.com/topdog/archive/2010/04/11/1709413.html

代码如下:
function load() {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}
function EndRequestHandler() {
aa();
}
function aa() {
//alert(0);
$(function(){
$('form').jqTransform({imgPath:'public/images/'});
});
//alert(1);
}


当前效果:注释开启时,可以看到alert(0);alert(1);,但就是updatepanel中下拉选框的样式就是没有变化?!

请有经验的兄弟帮忙指点一下,只要能可行,立刻结贴送分!
...全文
225 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yhtapmys 2011-11-24
  • 打赏
  • 举报
回复
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=103134

http://stackoverflow.com/questions/1732164/losing-css-class-added-through-jquery-on-updatepanel-partial-postback

http://www.eggheadcafe.com/aspnet/how-to/1109381/updatepanel-css-styleshee.aspx

yhtapmys 2011-11-24
  • 打赏
  • 举报
回复


<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args)
{
var elem = args.get_postBackElement();
ActivateBegin();
}
function EndRequestHandler(sender, args)
{
ActivateEnd();
}
function ActivateBegin(){}
function ActivateEnd()
{
var tes=document.getElementById('MultiSelectDropDown1_tbm');
tes.className='jqTransformSelectWrappernew';
}
</script>
....
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:gridview .....>
<columns>
<asp:DropDownList ID="ddlState" runat="server" AutoPostBack="True" onselectedindexchanged="ddlState_SelectedIndexChanged"> </asp:DropDownList>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" >
<ContentTemplate>
<div id="test">
<asp:HiddenField ID="HiddenField2" runat="server" />
<ddms:multiselectdropdown id="MultiSelectDropDown1" AutoPostBack ="true" runat="server"></ddms:multiselectdropdown>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlState" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</columns>
</asp:gridview>
.....
小元直 2011-11-24
  • 打赏
  • 举报
回复

应为 : $('select', $('#updatepaneId')).jqTransSelect();
小元直 2011-11-24
  • 打赏
  • 举报
回复
因 源码中存在
if(selfForm.hasClass('jqtransformdone')) {return;}
selfForm.addClass('jqtransformdone');
该语句判断是否已经加载过样式

所以应改为
function load() {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}

function aa()
{
if( $('select', $('#UpdatePanel1')).jqTransSelect().length > 0 ){jqTransformAddDocumentListener();}
}

function EndRequestHandler()
{
aa();
}
默默不得鱼 2011-11-24
  • 打赏
  • 举报
回复
$(function(){
$('form').jqTransform({imgPath:'public/images/'});
});
写错了吧 这是给页面load事件注册方法
改成$('form').jqTransform({imgPath:'public/images/'});

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧