繁体   English   中英

访问DOM以从HTML表服务器端获取值

[英]Accessing the DOM to obtain values from a HTML table Server-Side

我创建了一个美观控件,该控件在单独的div标签中创建了两个列表,每个div标签都带有一个表格。 控件始终是用户单击与每个项目关联的img标签,以在两个列表之间移动它。 我正在通过javascript在列表之间进行所有移动,并希望有一个好的方法来获取值并将它们存储在Postback上的两个列表中。 我想做一些类似将索引/类存储在隐藏值中,然后读取它们以查找项目的事情,但这似乎很麻烦。 另外,认为可能存在通过FindControl()遍历DOM的聪明方法,但不确定。 任何输入都会很棒。

另一件事是这不是复合控件。 所有标签都在RenderContents()方法中呈现。 因此,我不知道是否有办法像我通常想要在访问html元素之后编写代码一样,将runat =“ server”属性附加到元素上。

这是生成的HTML。 我认为没有必要发布服务器端代码,因为它只不过在此时生成了html。

<div class="DualListPanel" id="test1">
   <div key="test1_Unassigned">
      <table class="DLPTable">
         <tr>
            <td>Item 1</td>
            <td><img src="..." onclick="Move(this)" /></td>
         </tr>
         <tr>
            <td>Item 2</td>
            <td><img src="..." onclick="Move(this)" /></td>
         </tr>
      </table>
   </div>
   <div key="test1_Assigned">
      <table class="DLPTable">
      </table
   </div>
</div>

您不能使用FindControl()解析客户端脚本。 如果要跟踪在客户端上所做的更改,以便可以调整服务器上的数据,则必须使用隐藏字段,存储更改。 在这种情况下,隐藏字段是使客户端与服务器交互正常工作的唯一方法。

另一个答案是正确的方法。 在隐藏字段中存储数据本质上没有什么麻烦。 这是客户端和服务器通信的最基本方式。

但是我想发布另一种替代方法,即使用AJAX和WebMethod。 使用jQuery,这非常容易。 您的提交处理程序可以使用有关新列表顺序的任何信息(包括所有HTML,如果您确实想这样做)将POST信息发送到WebMethod,尽管我认为可以根据需要跟踪状态或顺序值的变化要简单得多)。 然后,该方法可以更新数据库。 如果您想获得真正的幻想,则可以使用异步方法实时访问服务器(例如,每次它们在客户端上移动某些东西时)。

在不知道上下文的情况下,这样做可能是过高的,但这是有时间和地点的另一种方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM