2013-03-12 42 views
-1

我正在我的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")); 

    } 

任何帮助,将不胜感激!

回答

2

并不完全知道你正在尝试与的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>

+0

我当时遇到的问题是在构建超链接时设置ViewState的值,但我想我已经想出了这个部分。你所展示的绝对比我所做的更清洁,所以我会使用它。非常感谢您的帮助! – LDWisdom 2013-03-15 00:54:27