如何进入放置在转发器内的TextBox?

时间:2016-03-03 17:58:13

标签: c# asp.net repeater

所以,我有一个转发器,它打印出数据库中的类别名称,每个类别名称都在它下面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名称..

1 个答案:

答案 0 :(得分:0)

您应该搜索TextBox以获取引用,然后使用该引用更新其属性。

TextBox txt1 = Repeater_Categories.FindControls("TextBox1") as TextBox;