none
如何在Repeater的ItemTemplate中把绑定的值赋值给一个变量? RRS feed

  • 问题

  • 代码片段:
    ......          
    <ItemTemplate> 
                  <dl>
                    <dt>
                      <div class="photo"> <a href="/Product/<%#Eval("id") %>"><img src="/upload/product_pic_1_03.gif" alt="品名:<%#Eval("name") %> 货号:<%#Eval("itemCode") %>" width="160px" /></a> </div>
                    </dt>
                    <dd> 品名:<a href="/Product/<%#Eval("id") %>"><%#Eval("name") %></a></dd>
                    <dd> 货号:<%#Eval("itemCode")%></dd>
                    <dd>
                    <%
                        int i = DataBinder.Eval(Container.DataItem, "memberRank");
                    %> </dd>
    .........
    2009年9月28日 3:36

答案

  • 你好!

    你可以在 ItemDataBound 事件中获取到绑定行的信息,另外你可以通过 FindControl 找到指定的控件获取它的值。

    知识改变命运,奋斗成就人生!
    2009年9月28日 3:41
    版主

全部回复

  • 你好!

    你可以在 ItemDataBound 事件中获取到绑定行的信息,另外你可以通过 FindControl 找到指定的控件获取它的值。

    知识改变命运,奋斗成就人生!
    2009年9月28日 3:41
    版主
  • 谢谢,不可以直接在ASPX文件的<%%>块中处理的吗?
    2009年9月28日 4:09
  • 谢谢,不可以直接在ASPX文件的<%%>块中处理的吗?

    这样是可以的
    <%  int i = DataBinder.Eval(Container.DataItem, "memberRank"); %>

    你需要在后台定义这个变量i 或者数组赖保存值 这样你在Code_Behind中也无法访问撒

    但建议直接采取xxy版主的方法
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年9月28日 4:43
    版主
  •  <% 
                        int i = DataBinder.Eval(Container.DataItem, "memberRank"); 
                    %> 

    不太符合asp.net的机制, int i 只是局部变量,其他方法无法访问到

    【孟子E章】
    2009年9月28日 6:14
    版主
  •  <% 
                        int i = DataBinder.Eval(Container.DataItem, "memberRank");  
                    %> 

    不太符合asp.net的机制, int i 只是局部变量,其他方法无法访问到

    【孟子E章】
    谢谢各位,我试过了不可以 ,提示Container不存在 。我是想这样用的
    <ItemTemplate> 
                  <dl>
                    <dt>
                      <div class="photo"> <a href="/Product/<%#Eval("id") %>"><img src="/upload/product_pic_1_03.gif" alt="品名:<%#Eval("name") %> 货号:<%#Eval("itemCode") %>" width="160px" /></a> </div>
                    </dt>
                    <dd> 品名:<a href="/Product/<%#Eval("id") %>"><%#Eval("name") %></a></dd>
                    <dd> 货号:<%#Eval("itemCode")%></dd>
                    <dd>
    <%
    int i = DataBinder.Eval(Container.DataItem, "memberRank");

    fro(j=0;<=i;j++)
    {
         Response.write(xxx)
    }
    %>
    </dd>
    2009年9月28日 6:52
  • 为什么要把<% %>写在.aspx页面中呢,建议写在.cs 文件中
    努力!奋斗
    2009年9月28日 7:24
  • 如果确实不可以那也只有放弃了
    2009年9月28日 7:25
  • <% 公用函数名((int) DataBinder.Eval(Container.DataItem, "memberRank"));
    cs代码 定义个函数(int)操作
    2009年9月28日 7:28