在转发器中更改行

时间:2010-03-19 22:30:29

标签: asp.net jquery updatepanel repeater row

我有一个转发器放在更新面板内。当用户输入新值时,更新转发器而不进行回发。是否有可能获得在JQuery中更新的行,以便我可以对其进行效果以使更改不那么微妙?例如,我想在已更改的行上淡化新颜色。

由于

3 个答案:

答案 0 :(得分:1)

使用ScriptManager对页面上的某些JS进行回调很容易。这段代码在我通过updatepanel收到的事件的事件处理程序中为我工作。

ScriptManager.RegisterStartupScript(Me, Me.GetType(), "someKey", "someFunc();", True)

在这种情况下,键并不重要,但是这将启动页面上的someFunc JS功能。如果可以在正在更新的行上标记CSS类,则可以定义一个对这些行执行jQuery高亮效果的函数。我认为那是我采取的方法。

“someFunc();”的字符串得到执行,并在它包装在适当的脚本标签后为True,所以你不必这样做。我也使用它(用于特定目的)来执行诸如弹出一个新窗口之类的操作,如下所示:

ScriptManager.RegisterStartupScript(Me, Me.GetType(), "viewReport", "window.open('" + reportURL + "','_blank');", True)

这发生在一个存在于更新面板内的Button.Click事件中,因此他们可以单击“查看报告”按钮,然后在单独的窗口中弹出它,而不进行整页刷新。

希望这有帮助,或者您可以找到一种方法来使用它。 :)

答案 1 :(得分:1)

我假设您有一个文本框或某种控件,导致UpdatePanel中的回发。如果是这样,那么你可以使用endrequesthandler并使用Jquery获取行并为其设置动画:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);

function endRequestHandler(sender, args){
     $("#" + sender._postBackSettings.sourceElement.id).parents("tr").animate(....);
}

或 jQuery 1.4.2

function endRequestHandler(sender, args){
     $("#" + sender._postBackSettings.sourceElement.id).parentsUntil("table").animate(....);
}

希望这有帮助

更新:可能希望按CSS类或其他东西进行过滤,除非您希望它发生在表格中的所有回发项目中

答案 2 :(得分:0)

感谢您的回复。我设法通过在提交之前存储用户更改的内容列表来解决问题,然后在updatepanel更新后搜索这些项目。每当找到一个项目时,该行就会更新。