有一个table,他的行是由数据库查询出来的,这里我用了repeater控件,将行的代码放到reperter的<ItemTemplate>中,代码如下:
<asp:Repeater ID="Repeater1" runat="server">
        <ItemTemplate>
        <tr>
                <td style="width: 100px">
                </td>
                <td style="width: 100px">
                    <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox></td>
                <td style="width: 100px">
                    <asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click"><%#DataBinder.Eval(Container.DataItem, "buildid")%></asp:LinkButton></td>
            </tr>
        </ItemTemplate>
        </asp:Repeater>
这里有一个text和一个linkbutton,我现在需要实现这样一个功能,就是点了这个linkbutton,能够修改同一行的textbox的text属性,如何实现,我尝试了这样的代码
protected void LinkButton1_Click(object sender, EventArgs e)
    {
        TextBox4.Text = "5";
    },但是编译时候说找到到text4。
如果不能用repeater实现,请问我该如何做来实现这样的功能

解决方案 »

  1.   

    用REPEATER不行
    如果非用REPEATER控件只能 
    定向到新页面  更新数据如果要想实现GRIDVIEW那样直接修改
    要用DATALIST或者GRIDVIEW控件你可以找一下DATALIST详解
    应该比较多这样的内容
      

  2.   

    这这 你用Repeater_ItemCommand事件写呗
    在事件里e.item.findcontrol就可以找的到的
      

  3.   

    这个是MSDN上的说明
    ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.chs/cpref16/html/M_System_Web_UI_WebControls_Repeater_OnItemCommand_1_dcc6fee5.htm
      

  4.   

    没有办法,只能用DataList或GridView来实现
      

  5.   

    这个只能从repeater中获取值,我现在还要修改repeater中的值呢
      

  6.   

    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            //Response.Write(e.Item.ItemIndex);
            foreach (Control con in Repeater1.Items[e.Item.ItemIndex].Controls)
            {
                TextBox txt = con as TextBox;
                if (txt != null)
                {
                    txt.Text = DateTime.Now.ToString();
                }
            }
        }<asp:Repeater ID="Repeater1" runat="server" onitemcommand="Repeater1_ItemCommand">
            <ItemTemplate>
            <tr>
                    <td style="width: 100px">
                    </td>
                    <td style="width: 100px">
                        <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox></td>
                    <td style="width: 100px">
                        <asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click"><%#DataBinder.Eval(Container.DataItem, "buildid")%></asp:LinkButton></td>
                </tr>
            </ItemTemplate>
            </asp:Repeater>