模仿csdn做个引用功能,问题是:
绑定数据时候,lblReplyNum这个lable中绑定的是具体楼层数,
Label lblReplyNum = rptReply.Controls[j].FindControl("lblReplyNum") as Label;
lblReplyNum.Text = "<a href='javascript:history.go(0);'>#&nbsp;" + (1 + j) + "</a>";
现在,我在点击引用按钮以后,怎么得到这个楼层数(也就是要怎么知道你是引用了哪一层的内容)

解决方案 »

  1.   

    你遍历repeater的时候,他会得到所有的label,要怎么知道,我引用了那一层的,
    就好像是现在,我引用了你的,怎么得到这个1,并且显示为:引用 1 楼 gxingmin 的回复:
      

  2.   

    label(或div)不是跟右上角楼号再同一个parent下吗?
      

  3.   


    我是将其内容绑定到repeater中,
     for (int j = 0; j < rptReply.Controls.Count; j++)
     {
         Label lblReplyNum = rptReply.Controls[j].FindControl("lblReplyNum") as Label;
         lblReplyNum.Text = "<a href='javascript:history.go(0);'>#&nbsp;" + (1 + j) + "</a>";
    }
    现在我要点击引用按钮,得到当前楼层数?
      

  4.   


    在Repeater绑定的时候加入了层数问题就是,我引用了你的帖子(你在9楼),如何得到这个"9"
      

  5.   

    或者你repeater绑定的时候  那个层数是有个字段的吧   你在引用的时候  把这个字段也可以传过去啊
      

  6.   

    是在后台操作嘛?不知道我理解的对不对,以下是我的解决方法:
    设定“引用”按钮的控件类型为LinkButton;使其触发repeater_ItemCommand事件.
    在后台获取数据:
    e.Item.FindControl("lblReplyNum")//得到楼层
    e.Item.FindControl("显示楼层答复的控件ID")//得到内容最后给最下面的回复框赋值就行了。
      

  7.   

      for (int j = 0; j < rptReply.Controls.Count; j++)
                    {
                        Label lblReplyNum = rptReply.Controls[j].FindControl("lblReplyNum") as Label;
                        lblReplyNum.Text = "<a href='javascript:history.go(0);'>#&nbsp;" + (1 + j) + "</a>";
    }
    我是在label中显示楼层数的,
      

  8.   


    <asp:LinkButton runat="server" ID="lnkbtn" Text="引用" CommandName="Create" CommandArgument='<%#Eval("层数的绑定字段") %>'></asp:LinkButton>
      

  9.   

    可是数据库中没有表示这个的字段
    我用 全局公共变量replyNum绑定,也不行
     <asp:LinkButton runat="server" ID="lblReplyQuote" Text="引用" OnClick="lblReplyQuote_Click"
                                    CommandName="quote" CommandArgument='<%=Eval("replyNum") %>'></asp:LinkButton>
      

  10.   


    把数据保存成文本样式,在页面显示的时候需要用到自定义标签和样式,这方面内容可以拷贝CSDN样式
      

  11.   


     for (int j = 0; j < rptReply.Controls.Count; j++)
     {
         Label lblReplyNum = rptReply.Controls[j].FindControl("lblReplyNum") as Label;
         lblReplyNum.Text = "<a href='javascript:history.go(0);'>#&nbsp;" + (1 + j) + "</a>";
    }你这个写在
    Repeater1.DataSource = dt;
    Repeater1.DataBind();
    下面?
    这些代码都是在Page_Load里面的吗?   怎么我写的时候
     Label lblReplyNum = rptReply.Controls[j].FindControl("lblReplyNum") as Label;
    取不到Label   取到的是null  都不能绑定层数。
      

  12.   

    你肯定要先绑定repeater
     rptReply.DataSource = ds;
    rptReply.DataBind();
    不然你的找不到那个控件
      

  13.   


    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("id", typeof(string));
                dt.Columns.Add("name", typeof(string));
                DataRow row1 = dt.NewRow();
                row1["id"] = "1";
                row1["name"] = "张三";
                dt.Rows.Add(row1);
                DataRow row2 = dt.NewRow();
                row2["id"] = "2";
                row2["name"] = "李四";
                dt.Rows.Add(row2);
                DataRow row3 = dt.NewRow();
                row3["id"] = "3";
                row3["name"] = "王五";
                dt.Rows.Add(row3);
                Repeater1.DataSource = dt;
                Repeater1.DataBind();
               
                for (int j = 0; j < Repeater1.Items.Count; j++)
                {
                    Label lblReplyNum = Repeater1.Items[j].FindControl("lblReplyNum") as Label;
                    lblReplyNum.Text = (1 + j).ToString();
                }
            }
        }
        protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            if (e.CommandName == "Create")
            {
                Label lblReplyNum = e.Item.FindControl("lblReplyNum") as Label;
                this.txt.Text = lblReplyNum.Text;        }
        }
    <form id="form1" runat="server">
        <div>
            <table width="600">
                <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
                    <HeaderTemplate>
                        <tr>
                            <td>
                                名称
                            </td>
                            <td>
                                层数
                            </td>
                            <td>
                                引用
                            </td>
                        </tr>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <tr>
                            <td>
                                <%#Eval("name")%>
                            </td>
                            <td>
                                <asp:Label runat="server" ID="lblReplyNum"></asp:Label>
                            </td>
                            <td>
                                <asp:LinkButton runat="server" ID="linkBtn" CommandName="Create" CommandArgument='<%#Eval("id")%>'
                                    Text="引用"></asp:LinkButton>
                            </td>
                        </tr>
                    </ItemTemplate>
                </asp:Repeater>
            </table>
        </div>
        <br />
        <br />
        <br />
        层数:<asp:TextBox runat="server" ID="txt"></asp:TextBox>
        </form>