0

我正在使用中继器控件-中继器上的每个项目都有一个图像和一个链接按钮。

从功能方面来说,单击链接按钮会触发一个 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();
            }
     }
4

1 回答 1

0

我尝试使用 registerstartupscript 从后面的代码中运行一些 jquery,但它在 DOM 完成之前运行并且我的图像恢复到 1.0 不透明度

IMO,这是正确的方法。至于图像恢复...您是否尝试将代码包装在其中$(document).ready()

于 2013-02-11T18:34:03.360 回答