Asp.net 客户端单击显示表中其他单元格的值
Asp.net OnClientClick show value from other cell in table
我在表中有以下ASP转发器:
<asp:Repeater ID="rptPage" runat="server" OnItemCommand="rptPage_ItemCommand" OnItemDataBound="rptPage_ItemDataBound">
<ItemTemplate>
<tr>
<td id="ArticleTitle">
<%# DataBinder.Eval(Container.DataItem,"Title") %>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem,"AuthorName") %>
</td>
<td>
<asp:Button ID="EditButton" runat="server" CommandName="edit" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"ID") %>' Text="Edit" />
</td>
<td>
<asp:Button ID="DeleteButton" runat="server" OnClientClick="return fnConfirmDelete(this)" CommandName="delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"ID") %>' Text="Delete" />
</td>
<td>
<a href="<%# String.Format("/news/Article={0}", processTitle(Eval("Title"))) %>">View Here</a>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
这一切都很好用。
删除功能上有一个确认按钮,使用以下方法:
function fnConfirmDelete(ArticleTitle)
{
return confirm("Delete Article " + ArticleTitle);
}
现在,我想做的是从这里传递文本:
<%# DataBinder.Eval(Container.DataItem,"Title") %>
进入确认框。
我尝试添加"名称"字段:
<asp:Button ID="DeleteButton" runat="server" OnClientClick="return fnConfirmDelete(this)" CommandName="delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"ID") %>' Text="Delete" name='<%# DataBinder.Eval(Container.DataItem,"Title") %>'/>
但这不会在名称字段中显示文本,而是显示某种服务器端更改。
我也尝试将值传递到 JavaScript 函数中:
<asp:Button ID="DeleteButton" runat="server" OnClientClick="return fnConfirmDelete('<%# DataBinder.Eval(Container.DataItem,"Title") %>')" CommandName="delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"ID") %>' Text="Delete" />
但这说明服务器标记的格式不正确。
我还尝试从具有该值的单元格传入一个 id,但服务器标签的格式仍然不正确。
有谁知道我如何实现这一目标?
另外,一旦我把它拿到 JavaScript 函数,我将如何检索值?
编辑:
我试过了:
<asp:Button ID="DeleteButton" runat="server" OnClientClick="return fnConfirmDelete('"<%# DataBinder.Eval(Container.DataItem,"Title") %>"')" CommandName="delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"ID") %>' Text="Delete" />
正如下面的@Reddy所建议的,但它也给出了服务器标签格式不正确的错误。
问题出在您的 OnClientClick,请更改为此。
OnClientClick="return fnConfirmDelete('"<%# DataBinder.Eval(Container.DataItem,"Title") %>"')"
试试这个:
<asp:Button ID="DeleteButton" runat="server" OnClientClick='<%# "return fnConfirmDelete(" + Eval("Title") + ");" %>'
CommandName="delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"ID") %>' Text="Delete" />
问题是,当使用中继器时,中继器会为名称字段分配一个值,因此我存储在那里的任何内容都会被分配的名称字段覆盖。
因此,我将变量存储在title
中,现在按预期显示:
<asp:Button ID="DeleteButton" runat="server" title='<%# DataBinder.Eval(Container.DataItem,"Title") %>' OnClientClick="return fnConfirmDelete(this)" CommandName="delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"ID") %>' Text="Delete" />
编辑:然后我可以使用 JQuery 检索元素,如下所示:
function fnConfirmDelete(ArticleTitle)
{
return confirm("Delete Article: " + $(ArticleTitle).attr('id'));
}
一个问题,由于某种原因,JQuery 无法检索元素"标题",例如:
return confirm("Delete Article: " + $(ArticleTitle).attr('title'));
但是,如果我将字段重命名为LinkTitle
则一切正常:
<asp:Button ID="DeleteButton" runat="server" LinkTitle='<%# DataBinder.Eval(Container.DataItem,"Title") %>' OnClientClick="return fnConfirmDelete(this)" CommandName="delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"ID") %>' Text="Delete" />
return confirm("Delete Article: " + $(ArticleTitle).attr('LinkTitle'));
这只是一个自定义字段名称
相关文章:
- 使用jquery在单击时在单元格中输入值
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 可以'我不明白为什么;t将行和单元格添加到表中
- 如何在Angular中的表的所有单元格中添加链接
- 表中单元格的总和
- ExtJS网格单元格编辑器,防止焦点松动问题
- 有没有一种方法可以仅使用HTML/CSS来隐藏基于特定值的数据单元格
- 区分电子表格中的空单元格和0值
- ui网格将单元格显示为选择标记
- 单元格的工具提示或标题不显示超过2000个字符
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- 需要将单元格值复制到html表中的其他单元格中
- 申请表要求在提交前一个单元格与其他单元格相等
- Asp.net 客户端单击显示表中其他单元格的值
- 谷歌电子表格将一些值存储在其他单元格中
- 单击时高亮显示单元格边框颜色,单击时改回其他颜色
- 通过改变z-index用Javascript激活其他表的表格单元格
- 从单元格中删除输入元素,并在单元格或其他单元格外部单击时保留值
- 禁用html表格单元格中的复选框,在选中同一行的其他单元格中的复选框
- 从同一行中其他单元格的SUM中设置单元格值