<asp:Repeater ID="rpt" runat="server">
        <ItemTemplate>
         <tr>
            <td><%#Eval("productID") %></td>
            <td><input type="text" id="txtcontent+<%#Eval("productID") %>"/></td>
         </tr>  
        </ItemTemplate>
    </asp:Repeater>实现的效果如下:
XXXX1:【 textBox 】
XXXX2:【 textBox 】
XXXX3:【 textBox 】
XXXX4:【 textBox 】确定 取消XXXX有一个ID值
我要根据XXXX的ID值,通过TextBox更改这个ID值的某个数据。当我按确定的时候,全部TextBox更改某个ID值的某个数据问题实在还没描述清楚的请加QQ93503689~语音说明~!明天上班必须要~救命!

解决方案 »

  1.   

     protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Repeater1.DataSource = getDataTable();
                Repeater1.DataBind();
            }
        }
        public DataTable getDataTable()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("ID", Type.GetType("System.Int32"));
            dt.Columns.Add("Name", Type.GetType("System.String"));
            string[] name = { "zhangsan", "lisi", "wangwu" };
            for (int i = 0; i < name.Length; i++)
            {
                DataRow row = dt.NewRow();
                row[0] = i + 1;
                row[1] = name[i];
                dt.Rows.Add(row);
            }
            string str="zz";
            HttpUtility.UrlEncode(str, Encoding.UTF8);
            HttpUtility.UrlDecode(str, Encoding.UTF8);
            return dt;
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            string result = "";
            for (int i = 0; i < Repeater1.Items.Count; i++)
            {
                TextBox txt = Repeater1.Items[i].FindControl("TextBox1") as TextBox;
                //确实没看明白,当我按确定的时候,全部TextBox更改某个ID值的某个数据
                  //上面那句什么意思?是想要更改全部的textbox的值?还是什么?
                result += txt.Text + "<br/>";
            }
            Response.Write(result);
        }        <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate><table></HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td><%#Eval("ID") %></td>
                    <td>
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%#Eval("Name") %>'></asp:TextBox>
                    </td>
                </tr>
            </ItemTemplate>
            <FooterTemplate></table></FooterTemplate>
            </asp:Repeater>
            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
      

  2.   

    还是想点击确定后把全部的textbox值都改为例如ID=1的值? protected void Button1_Click(object sender, EventArgs e)
        {
            string result = "";
            for (int i = 0; i < Repeater1.Items.Count; i++)
            {
                Label lb = Repeater1.Items[i].FindControl("Label1") as Label;
                TextBox txt = Repeater1.Items[i].FindControl("TextBox1") as TextBox;
                if (lb.Text == "1")
                {
                    result = txt.Text;
                }
                txt.Text = result;
            }
        }
      

  3.   

    就是说:
    XXXX1里有一个ID,【  textBox 】
    XXXX2 【  textBox 】
    XXXX3 【  textBox 】然后提交的时候 TextBox里的值 不是有3个吗?然后我要根据XXXX里的ID~用TextBox里的值UPdate数据
      

  4.   

    XXXX ID里面有2个列,一列存ID,另一列存属性值
    当我按确定时,TextBox里的值就更新此ID的属性值,注意XXXX,XXXX1的ID值都不一样
    还不明白的话我真无语了。
      

  5.   


    //也就是点击确定的时候,取得每一行的textbox的值和id,然后根据每行的id修改数据库中某个字段为textbox中的值?
     protected void Button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < Repeater1.Items.Count; i++)
            {
                Label lb = Repeater1.Items[i].FindControl("ID") as Label;
                TextBox txt = Repeater1.Items[i].FindControl("Name") as TextBox;
                int id = Convert.ToInt32(lb.Text);
                string name = txt.Text;
                string sql = "update table set name='" + name + "' where id=" + id + "";
                //。
            }
        }<asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate><table></HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td>
                        <asp:Label ID="ID" runat="server" Text='<%#Eval("ID") %>'></asp:Label></td>
                    <td>
                        <asp:TextBox ID="Name" runat="server" Text='<%#Eval("Name") %>'></asp:TextBox>
                    </td>
                </tr>
            </ItemTemplate>
            <FooterTemplate></table></FooterTemplate>
            </asp:Repeater>
            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
      

  6.   

    我那个XXXX是绑定过来的<%#Eval("ID")%>~不是控件Lable
      

  7.   

    label绑定的就是Eval("ID")
    只是为了让后台获得这个值,才改为label绑定Eval("ID")
    如果是gridview的话可以直接用row[i].cell[1].Text
      

  8.   

    你把它换成服务端的Literal或者Label就行了
    或者加个Html隐藏域
      

  9.   

    你的XXXX1是两个字段?一个是某字段一个是ID字段,然后显示在一起的
    例如:
    <td><%#Eval("某字段")%><%#Eval("ID")%></td>
    还是分开来的
    例如:
    <td><%#Eval("某字段")%></td>
    <td><%#Eval("ID")%></td>
      

  10.   

    数据库
    id  value
    1   XXXXX
    2   XXX
    3   XXXXX
    xxxx是一个字段<td><%#Eval("某字段")%></td>
    <td>TEXTBOX<td>
      

  11.   

    你的某字段里面包含ID?某字段结构是什么样的?如果是文字然后和ID整型结合的话还可以获取到
    如果不是还没有什么规则的话取不到ID值
      

  12.   

    某字段里是没有ID的。但是textBox里的id是txt+“<%#Eval("ID")%>”
      

  13.   

    也就是textbox里有一个是数据库中的字段,还有一个是ID的值?
    不想让ID的值单独显示一列?
      

  14.   

    是的~我只想显示NAME:TextBox
      

  15.   


    <!--那就弄个隐藏域,值为ID,它不显示出来的-->
    <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate><table></HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td>
                        <asp:HiddenField ID="HiddenField1" runat="server" Value='<%#Eval("ID") %>' />
                        </td>
                    <td>
                        <asp:TextBox ID="Name" runat="server" Text='<%#Eval("Name").ToString()+Eval("ID").ToString()%>'></asp:TextBox>
                    </td>
                </tr>
            </ItemTemplate>
            <FooterTemplate></table></FooterTemplate>
            </asp:Repeater>
            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
        protected void Button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < Repeater1.Items.Count; i++)
            {
                HiddenField hid = Repeater1.Items[i].FindControl("HiddenField1") as HiddenField;
                TextBox txt = Repeater1.Items[i].FindControl("Name") as TextBox;
                int id = Convert.ToInt32(hid.Value);
                string name = txt.Text;
                string sql = "update table set name='" + name + "' where ID=" + id + "";
            }
        }
      

  16.   

    <asp:TextBox
    foreach(RepeaterItem item in Repeater.Items)
    { TextBox txt=item.FindControl("txT") as TextBox;
     //txt.Text取值,update修改
    //重新BindDATA()
    }
      

  17.   

    我TextBox里刚开始的时候不显示数据的呀,绑定来干嘛~!
      

  18.   

    把主键绑定在当前行的hidden 中
      

  19.   

    = =!刚开始不显示数据的话那你就把绑定去掉不就可以了?
    <asp:TextBox ID="Name" runat="server" Text=''></asp:TextBox>
      

  20.   

    (text)row[].cells[].cotrol[].tostring()//分别对应的是行  列   控件集合  
      

  21.   

     TextBox txt = Repeater1.Items[i].FindControl("TextBox1") as TextBox;
    这是找所有TEXTBOX好象
    服务器控件一般就是FINDCONTROL
      

  22.   


    哪有什么TextBox?你的Template中只有一个html字符串,它运行时被打包成LiteralControl控件。
      

  23.   

    如果用TextBox,就正经用TextBox。这很简单的东西,搞什么html飞机呢?