所以,我有一个转发器,它打印出数据库中的类别名称,每个类别名称都在它下面TextBox
和按钮,这样我就可以编辑它的名字如果我愿意,但......是的,总有一个但是。我很简单无法到达重复的TextBox
,它告诉我TextBox_Update
在当前上下文中不存在。
protected void Button1_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = @"UPDATE [categories] SET [category_name] = @category_name WHERE [category_id] = @category_id";
cmd.Parameters.AddWithValue("@category_name", TextBox1.Text);
cmd.Parameters.AddWithValue("@category_id", Request["id"]);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
Response.Redirect("default.aspx");
}
这是我尝试更新它的方式但...告诉我textbox
根本不存在。
以下是html中的样子
<asp:Repeater ID="Repeater_Categories" runat="server" >
<HeaderTemplate>
<div class="insertPost">
<h1>Categories</h1>
<hr />
</HeaderTemplate>
<ItemTemplate>
<div class="category">
<h3><%# Eval("category_name") %></h3>
<div class="categoryEdit">
<asp:TextBox ID="TextBox1" runat="server" ValidationGroup="3"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" ValidationGroup="3" />
<a href="?action=delete&id=<%# Eval("category_id") %>">Del</a>
<br />
</div>
</div>
</ItemTemplate>
<FooterTemplate>
</div>
</FooterTemplate>
</asp:Repeater>
可能做了一件非常错误的事情,我很渴望得到帮助;&lt;
@Edit
修正了TextBox名称..
答案 0 :(得分:0)
您应该搜索TextBox以获取引用,然后使用该引用更新其属性。
TextBox txt1 = Repeater_Categories.FindControls("TextBox1") as TextBox;