在回发中访问 imagebutton src

问题描述

环境:Microsoft Visual Studio 2019 社区,使用 VB.NET 的 ASP.NET v4.8 Web 应用程序项目

问题:我有一个 asp 图像按钮,用于通过每次单击时更改图像(红色-琥珀色-绿色-红色)来指示状态。这是使用 javascript 完成的:

btn.src = newImage;

这很好用。 imageurl 是在 html 中使用 src 访问的,但图像最初是通过设置 imagebutton.imageurl 在 databind 后面的代码中设置的:

btn.ImageUrl = initialImage

在回发(保存)时,我想通过查看当前的 imageurl 来查找状态。

Dim btn As ImageButton = CType(mainGrid.Rows(i).FindControl("btn"),ImageButton))

someval = btn.imageurl

问题在于 imageurl 显示的是最初设置的值,而不是更改后的值。这种奇怪的现象似乎指向我代码中某个地方的错误,因为显然后面保存代码中的 imagebutton 变量对后面的数据绑定代码中的 imagebutton 变量一无所知。

有人可以确认回发中的 imageurl 实际上应该与 html 中更改的 src 匹配吗?

编辑:我应该说我不想在他们每次单击图像按钮时使用服务器端处理。我可以使用命令参数来完成这项工作,但每次点击都会导致数据库写入。每行有十几个按钮,所以我认为制作过程会很慢。

解决方法

由 Albert D. Kallal 提供的答案是,图像按钮不会将任何更改的属性传递回背后的代码。可能的解决方案是 1) 使用更新面板,2) 同时更改成对的隐藏字段(类型确实将更改传回)或 3)在更改后使用 ajax 更新数据库。我使用了选项 3。