动态构建超链接,但也需要执行另一个操作
本文关键字:执行 另一个 操作 构建 超链接 动态 | 更新日期: 2023-09-27 18:03:29
我正在从存储过程调用填充我的asp.net网页(弹出)上的中继器。我有一个列,我需要建立基于值的超链接动态调用查询回我原来的web表单。但是,我遇到的问题是,当我单击链接时,我还需要检索一些其他数据并将这些数据插入视图状态。
我调用的"GetListOfValues"函数显然不像我编码的那样工作。有没有一种方法可以做到这一点,甚至可能比我想做的做得更好?
下面是我的例子:
default . aspx
<asp:Repeater ID="rptReport" runat="server">
<HeaderTemplate>
<table>
<tr>
<td>Name</td>
<td>ID</td>
<td>Value1</td>
<td>Value2</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# DataBinder.Eval(Container.DataItem,"Name") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"ID") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"Value1") %></td>
<td><%# GetValueTwoLink(Eval("Name"),Eval("Value2") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr>
<%--This area holds totals for columns--%>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
Default.aspx.cs
protected string GetValueTwoLink(object name, object value2)
{
ViewState["ListOfValues"] = datalayer.GetListOfValues(name, value2);
return string.Format(
"<a href='"#'" onlick='"window.opener.ViewValues('{0}')'">{1}</a>",
name,
Convert.ToInt32(value2).ToString("d"));
}
任何帮助将不胜感激!
不确定你想用onclick做什么…但是你可以在代码前面这样做:
<ItemTemplate>
<tr>
<td><%# Eval("Name") %></td>
<td><%# Eval("ID") %></td>
<td><%# Eval("Value1") %></td>
<td>
<a href="#"
onclick="<%# String.Format("window.opener.ViewValues('{0}')", DataBinder.Eval(Container.DataItem,"Name")) %>">
<%# Convert.ToInt32(DataBinder.Eval(Container.DataItem, "Value2")).ToString("d")%>
</a>
</td>
</tr>
</ItemTemplate>
同样,正如你看到的,你可以直接使用
<%# Eval("Name") %>
代替
<%# DataBinder.Eval(Container.DataItem,"Name") %>
只显示数据。当您需要进行一些操作时,您可以使用DataBinder.Eval
,例如在第4个<td>
中。