<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~语音说明~!明天上班必须要~救命!
<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~语音说明~!明天上班必须要~救命!
{
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" />
{
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;
}
}
XXXX1里有一个ID,【 textBox 】
XXXX2 【 textBox 】
XXXX3 【 textBox 】然后提交的时候 TextBox里的值 不是有3个吗?然后我要根据XXXX里的ID~用TextBox里的值UPdate数据
当我按确定时,TextBox里的值就更新此ID的属性值,注意XXXX,XXXX1的ID值都不一样
还不明白的话我真无语了。
//也就是点击确定的时候,取得每一行的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" />
只是为了让后台获得这个值,才改为label绑定Eval("ID")
如果是gridview的话可以直接用row[i].cell[1].Text
或者加个Html隐藏域
例如:
<td><%#Eval("某字段")%><%#Eval("ID")%></td>
还是分开来的
例如:
<td><%#Eval("某字段")%></td>
<td><%#Eval("ID")%></td>
id value
1 XXXXX
2 XXX
3 XXXXX
xxxx是一个字段<td><%#Eval("某字段")%></td>
<td>TEXTBOX<td>
如果不是还没有什么规则的话取不到ID值
不想让ID的值单独显示一列?
<!--那就弄个隐藏域,值为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 + "";
}
}
foreach(RepeaterItem item in Repeater.Items)
{ TextBox txt=item.FindControl("txT") as TextBox;
//txt.Text取值,update修改
//重新BindDATA()
}
<asp:TextBox ID="Name" runat="server" Text=''></asp:TextBox>
这是找所有TEXTBOX好象
服务器控件一般就是FINDCONTROL
哪有什么TextBox?你的Template中只有一个html字符串,它运行时被打包成LiteralControl控件。