当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET:如何从javascript访问转发器生成的元素?

如何解决《ASP.NET:如何从javascript访问转发器生成的元素?》经验,为你挑选了0个好方法。

我有一系列使用asp:repeater生成的行:


   
      
         
            
         
         
            
         
      
   

转发器创建一个HTML表,每行包含一个项目的链接和(基本上)一个"删除"链接.以上简化示例代码生成类似于以下内容的HTML:



   
      AllisonAngle_SoccerGirl001.jpg
   


   Delete


现在一切正常,但我想将"删除"转换为客户端.我想能够点击链接,它将在客户端javascript:

提示警告"你确定......"

有javascript问题服务器命中实际删除他们想要的项目

从客户端DOM树中删除该项

所以有四个问题需要解决:

    如何将javascript连接到客户端点击删除链接.

    如何知道用户点击了什么项目删除

    防止回发

    删除用户单击的行

这是我的问题.

从这里开始,你会发现我试图解决它.不要将以下任何内容与任何可能接受的解决方案相关联.仅仅因为我在下面发布了代码,并不意味着任何有用的代码.并不意味着我在最佳解决方案的吐痰距离内.而且因为我无法在工作之下做任何事情 - 它必定走错了路.


我的尝试

连接Javascript

第一个任务是将删除链接HTML从以下内容转换为:


   Delete

更多javascripty:


   Delete

并添加脚本:


ASP代码的组合可用于创建上述内容?我听说asp:LinkBut​​ton有一个OnClientClick事件,你可以在其中连接一个javascript函数:


问题是呈现的HTML实际上包含:


   Delete

如果我将客户端点击事件处理程序更改为:

   OnClientClick="DeleteItem('todo - figure this out');"/>

它的工作原理 - 以及"todo - 想出这个"都可以.


防止回发

实际上发生了javascript调用上面的惨淡(我可以看到我的警报),但是还有下一个问题:从javascript函数返回false并不会阻止回发.事实上,我可以看到生成的HTML代码上的href不是"#",而是

javascript:__doPostBack('ctl0....

我尝试更改ASPX代码以包含自己的OnClick处理程序:

   OnClick="#"
   OnClientClick="DeleteItem('todo - figure this out');"

但是编译器认为英镑是一个pragma,并且抱怨:

预处理程序指令必须显示为一行中的第一个非空白字符


表行标识

表行没有ID,它们由asp:repeater生成.

javascript函数如何知道是什么触发了click事件?javascript需要能够找到该元素,并将其从树中删除.

注意:我当然更喜欢淡入淡出+折叠动画.

通常你会使用一个元素

var tr = document.getElementById("the table row's id");

但表行没有容易知道的ID.由于存在多行,因此服务器在构建表时会生成ID.我意识到一些解决方案将涉及改变:



这样每个表行都会有服务器生成的标识,但是如何从javsscript引用生成的名称?

通常我会认为脚本问题可以通过使用多个参数来解决:

function DeleteItem(tableRowElement, deleteUrl)
{
   //Do a web-hit of deleteUrl to delete the item


   //remove tableRowElement DOM object from the document tree
}

但问题只是推到别处:你如何填充tableRowElement和deleteUrl来调用javascript函数?


这样一个简单的问题:将点击从回发转换为客户端.

涉及的问题数量非常愚蠢.这似乎也表明了这一点

想法解决方案完全不同

没有解决方案


参考

Stackoverflow:如何在回发之前淡出一行?

Stackoverflow:在asp之前的Javascript:ButtonField点击

asp.net:从javascript访问转发器元素.

Stackoverflow:如何访问转发器生成的元素?

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有