如何先触发 OnCommandClick 而不是 OnClientClick

How to trigger OnCommandClick first than OnClientClick

我正在 OnCommandClick 中创建一个会话,以保存有关将要下载的文件的信息。 如果我点击下载它,OnClientClick 工作正常,我可以下载文件。

但是当我有一个包含多个文件的网格时,我认为函数 OnClientClickOnCommandClick 先触发,所以会话在下载后正在更新,所以我总是得到错误的文件。就在我再次单击同一文件时,正确的文件出现了(因为可能在第一次单击后会话已更新)。

例如:文件 1、2、3 和 4...如果我单击文件 1,它可以下载,但是当我单击文件 2 时,它会再次下载文件 1,然后如果我单击文件 4,它会下载文件 2,如果我单击 3,它会下载文件 4,始终是前一个。

我可以先强制 OnCommandCLick 到 运行 而不是 OnClientClick 来尝试解决这个问题吗?

OnClientClick 总是先被调用。我建议删除 OnClientClick 并将文件下载代码移动到服务器端事件 OnCommandClick,紧接着更新会话。

您可以使用 FileStream 或注入将开始文件下载的 javascript 代码。