我正在使用中继器控件-中继器上的每个项目都有一个图像和一个链接按钮。
从功能方面来说,单击链接按钮会触发一个 itemcommand(提供一个命令参数)。然后,此 item 命令运行一些服务器端代码,以将与第一个转发器相关的数据作为子列表填充另一个转发器。
从 UI 方面来看,中继器上的每个项目的图像不透明度都会降低,但单击的链接按钮图像除外。
这是我遇到麻烦的地方:
$('.showSubCats').click(function (e) {
e.preventDefault();
$(".myImages").animate({ opacity: 0.2 }, 300);
$(this).parent().children('img').animate({ opacity: 1.0 }, 300);
});
这显示了当前单击的图像并巧妙地隐藏了其余图像。但是我不得不引入 e.preventdefault() 因为 itemcommand 上的回发显然取消了 jquery 刚刚对图像所做的工作。
通过引入 .preventdefault(),我现在丢失了 itemcommand,因为它被阻止了。啊。
以为我有:
- 我尝试使用 registerstartupscript 从后面的代码中运行一些 jquery,但它在 DOM 完成之前运行并且我的图像恢复到 1.0 不透明度
- 我在我的 jquery 中尝试了一个 ajax 调用以这种方式运行服务器端脚本 - 但我无法获得可行的解决方案
- 我尝试添加 {return: true};
我是用这个想法鞭打一匹死马,还是我可以尝试其他方法?
这是我的项目命令代码:
protected void showSubCat_itemCommand(object sender, CommandEventArgs e)
{
using (var db = new ps.data.Entities1())
{
int id = int.Parse(e.CommandArgument.ToString());
var subCats = (from sc in db.vwSubCategories
where sc.primaryCategoryID == id
select sc).ToList();
SubCategories.DataSource = subCats;
SubCategories.DataBind();
currentCatChosen.Value = id.ToString();
}
}