Asp.net 在回发之前,如何淡出一行

Asp.net 在回发之前,如何淡出一行,asp.net,ajax,.net-2.0,Asp.net,Ajax,.net 2.0,我有一个在ASP.Net的数据列表中创建的表。此表有三个文本字段,然后是一个带编辑按钮的字段,以及一个带删除按钮的字段。当一个人单击delete按钮时,它会发回、删除项目,然后再次绑定数据列表。数据列表位于UpdatePanel中,因此该项目在半秒或更长时间后会平稳消失,但我真正希望的是,当他们点击delete按钮时,该行立即滑出(向上),然后让它删除帖子背面的项目 我可以使用jQuery使行滑出,但是回发会造成阻碍。你是怎么处理的 您是否尝试过查看任何Ajax控件工具包项目?我相信其中有些控件

我有一个在ASP.Net的数据列表中创建的表。此表有三个文本字段,然后是一个带编辑按钮的字段,以及一个带删除按钮的字段。当一个人单击delete按钮时,它会发回、删除项目,然后再次绑定数据列表。数据列表位于UpdatePanel中,因此该项目在半秒或更长时间后会平稳消失,但我真正希望的是,当他们点击delete按钮时,该行立即滑出(向上),然后让它删除帖子背面的项目


我可以使用jQuery使行滑出,但是回发会造成阻碍。你是怎么处理的

您是否尝试过查看任何Ajax控件工具包项目?我相信其中有些控件将使用客户端(java)代码,如果您不太熟悉

我将使用客户端Javascript手动将“不透明”CSS属性缩放到零,然后将元素标记为“display:none”,然后提交回帖子

我相信在InternetExplorer中,您需要使用“Filter”CSS属性来实现这一点,因为它不支持不透明度


您可以编写一个例程来设置这两个属性,该例程应涵盖所有主要浏览器。

为表单“提交”事件注册处理程序

防止表单提交是必要的,以避免干扰要执行的效果。完成后,您可以继续进行提交。

您可以使用asp.net向服务器发送请求,而无需回发。它们使用起来非常简单,当ajax调用完成时,您可以执行任何您喜欢的效果(您将获得一个名为success的函数)

如果您想坚持使用回邮,一种解决方案如下:

<asp:Button id="myButton" OnClientClick="return fadeThenAllowSubmit()" ... />

这有点像黑客,想法是先取消回发,做一些事情,然后设置一个计时器,在那里回发将被启用。这种方法的一个大问题是淡入淡出效果和实际删除是独立的(如果出现错误,您仍然会得到淡入淡出效果)。

因此,请编写一个循环,在返回true之前执行此操作,而不是使用jQuery/Bingo!你可能需要一些延迟。您可能需要进行一点实验,但我的方法应该有效。是否有某种方法可以调用web服务从javascript中删除该项?这样我就可以使用干净漂亮的jQuery淡入淡出,甚至不必发回帖子了?要说用户删除了代码中的一个项目并不完全是直截了当的。我想我可以在点击按钮时设置一个变量。这就是你的建议吗?是的,这是一种方法。但是,如果不能轻松区分不同的提交按钮,只需防止表单提交并附加不同的处理程序来删除按钮和其他(提交或编辑)按钮即可。在“删除”中,处理程序执行效果,然后提交表单。
<asp:Button id="myButton" OnClientClick="return fadeThenAllowSubmit()" ... />
var allowSubmit = false;
function fadeThenAllowSubmit() {
    if (allowSubmit) return true
    // do the jquery stuff that will be completed in, let's say, 1000ms
    setTimeout(function() {
        allowSubmit = true
        $("input[id$=myButton]").click()
        allowSubmit = false
    }, 1000)
    return false
}