我用的repeater绑定数据,由于repeater 是循环绑定行,我每绑定一行的时候我想获取<%# Eval("id") %>的值,语法是怎么写的
我是前台aspx文件中写的代码
<% 
-省略代码-
string id=<%# Eval("id") %>,有什么办法让这个eval绑定的值赋值给id。
-省略代码-%> <ItemTemplate>
     <tr>
        <td>
           <asp:Label ID="Label2" runat="server" Text='<%# this.GetSubString( Eval("Channel.channelName").ToString()) %>'></asp:Label>
         </td>
         <td>
         <asp:Label ID="Label1" runat="server" Text='<%# this.GetSubString( Eval("spaceName").ToString()) %>'></asp:Label>
             <asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("id") %>'  />
         </td>
         <td>
         <asp:Label ID="Label3" runat="server" Text='<%# Eval("price") %>'></asp:Label>
         </td>

解决方案 »

  1.   

    还有个方法就是 string id = this.Repeater1.Items[循环的行索引].FindControl["ID名"];
    我不知道怎么获取那个行索引
      

  2.   

    for(int i=0;i<Repeater1.Items.Count;i++)
    {
    string id = this.Repeater1.Items[循环的行索引].FindControl["ID名"];
    }
      

  3.   

    我每绑定一行的时候我想获取<%# Eval("id") %>的值,语法是怎么写的?你是想从数据库里读取到id然后绑定到repeater里面吗?如果是:直接Text='<%#Eval("id")%>';   或者在<td><%#Eval("id")%></td>;
      

  4.   

    ID只是一个字段,每循环一行的时候,我想用个变量获取这个id值,有其他用处
      

  5.   

    this.GetSubString
    照着这个方法处理
      

  6.   

    在repeateritem里面,用findcontrol方法找到这个隐藏域hiddenfield,取得value就行。
      

  7.   

    这些都好做,我现在想用个变量存下那个值,而且我代码写在<% %>里的
      

  8.   

    string id = this.Repeater1.Items[循环的行索引].FindControl["ID名"];
    这个索引怎么获取呢
      

  9.   

    repeater的项模板里包含服务器端代码?
      

  10.   

    后台定义一个方法:
    public string ReturnId(string id)
    {
       return id;
    }
    前台:
    <%= ReturnId(Eval("id").ToString())%> //显示
    或者定义变量
    <%
    string id=ReturnId(Eval("id").ToString());try
    %>
      

  11.   

    前台
    <asp:Repeater ID="Repeater1" runat="server" 
                onitemcommand="Repeater1_ItemCommand">
                <ItemTemplate>
      <asp:Button ID="Button1" runat="server" Text="删除" CommandArgument='<%#Eval("ID") %>' CommandName="Delete" />                <asp:Button ID="Button2" runat="server" Text="修改" CommandArgument='<%#Eval("ID") %>' CommandName="Update" />
                </ItemTemplate>
            </asp:Repeater>后台
    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
      {
      String str=e.CommandName.toString();
      if(str=="Delete"){
      //删除的操作
      //调用你写的删除方法进行删除
      }else if(str=="Update"){
      //修改操作
     //调用你写的修改方法进行修改
      }
    }
      

  12.   


    可以在RepeaterItem_dataBound事件里面
    直接 e.Itam.FindControl("ID")  这个不需要索引绑定完后循环遍历Repeater
    for或者foreach
    for(int i=0;i<Repeater1.Items.Count;i++)
    {
       Repeater1.Items[i].FindControl("ID")
    }foreach(RepeaterItem item in Repeater1.Items)
    {
       item.FindControl("Id")
    }要怎么用看你的需求了
      

  13.   

    子夜MM 楼主是想在<%%>里执行代码
      

  14.   

    报错了,Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用。 
      

  15.   

             <td>
             <asp:Label ID="Label3" runat="server" Text='<%# Eval("price") %>'></asp:Label>
             </td>
             <td>
             </td>
             <td>
                 <asp:LinkButton ID="LinkButton1" runat="server">删除</asp:LinkButton>
             </td>            <% 
                    List<ArrangeDate> list=new ArrangeDateManager().GetArrangeDateByOrderId("1");
                    //string id = ReturnId(Eval("id").ToString());
                    //Response.Write("<td>" + id + "</td>");
                    for (int i = 1; i <= 31; i++)
                    {
                        foreach (var item in list)
                        {                        string yearAndMonth = item.ArrangeTime.Year + "," + item.ArrangeTime.Month;
                            if (item.Adspace.Id == 2 && item.ArrangeTime.Day == i && yearAndMonth == this.ddl_date.SelectedValue)
                            {
                                Response.Write("<td>1</td>");
                            }
                        }
                        Response.Write("<td></td>");
                    }
                     %>
             </tr>
         </ItemTemplate>
    我想在for循环中获取那个绑定的ID的值
      

  16.   

    protected void Repater_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    Label lbid = (Label)e.Item.FindControl("lbid");
                }
            }
      

  17.   

    晕。你不就是要用某个字段做一些事么?
    在Repater_ItemDataBound里添加该字段的绑定控件的相应属性来调用方法来处理事情不就可以了。
    类似:((TextBox)(e.Item.Controls[5])).Attributes.Add("onclick", "方法名('" + ((TextBox)(e.Item.Controls[5])).Text + "')");剩下的不就看你的方法怎么处理了。
      

  18.   

    一种用脚本 function clickList(id){你需要的操作}, 一种就是14楼哪种了。 
      

  19.   

    1,隐藏域
     <input value='<%Eval%>'>
    2,id值 
      <li id='li<%Eval%>'></li>
    3,臃肿的服务器代码 后台循环获取该控件下的所有表单值
      

  20.   

    <%#字段%>绑定数据源代码,如果这种实现用子夜的办法。
    <%%>服务器端代码如果这种实现,用,下面的itliyi的办法。
    方法很多
      

  21.   

    那你能不能取label的text呢?试试label.text获取下看看
      

  22.   

    那你能不能取label的text呢?试试label.text获取下看看
      

  23.   

    你获取的这个Eval("id")是在Repeater内用还是在外用?如果在内用,直接在后台写个public方法,把Eval("id")传进去就可以了
      

  24.   

    Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用。 不能写在<%%>里面
      

  25.   

    你直接写在<%#%>里不行么
      

  26.   

    你不懂我的意思,我不是绑定数据,我现在要把我绑定的数据赋值给一个变量,而且这个绑定在repeater里的HiddenField 的value值,而且目前只在aspx文件里给变量赋值
      

  27.   


    <asp:Repeater ID="rpt" runat="server">
        <ItemTemplate>
        <table border="1">
        <tr>
        <asp:Label ID="dd" runat="server" Text='<%# Eval("TaskMask").ToString()%>'></asp:Label><!--用于保存id-->
        <td><%# Eval("RoleName") == null ? "" : Eval("RoleName").ToString()%></td>
        <td><%# Eval("Description").ToString().Length > 5 ? Eval("Description").ToString().Substring(0, 5) + "..." : Eval("Description").ToString()%></td>
        <td><%# Eval("TaskMask")%></td>
        <td><%# Eval("RoleFlags")%></td></tr>
        </table>
        </ItemTemplate>
        </asp:Repeater>
        </div>
        </form>
        <%
            for (int i = 0; i < rpt.Items.Count; i++)
            {
                string id = "";
                Label l = rpt.Items[i].FindControl("dd") as Label;//取得保存id的label对象
                if(l != null)
                {
                    id = l.Text;
                    Response.Write(id);
                }
            }
             %>
      

  28.   

    表单传值
      绑定
      <input name="cho" type="checkbox" value="<%#Eval("id")%>" />  后台接收
      string IDs = Request.Form["cho"].Replace(" ",",");