将文本框绑定到值

时间:2011-01-26 15:21:03

标签: asp.net data-binding

如何绑定到文本框并在按钮单击时检索修改后的值。

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Sku objSku = new Sku();
            objSku.Name = "Test";
            Sku = objSku;
            frm.DataSource = Sku;
            frm.DataBind();
        }
        if (IsPostBack)
        {

            Sku = ViewState["Sku"] as Sku;
        }

    }

    public Sku Sku { get; set; }

    protected void Button1_Click(object sender, EventArgs e)
    {
        //Hers sku.Name should be equal to the value entered by the user . so that I can save the object.

    }

}
[Serializable]
public class Sku 
{
    public string Name { get; set; }
}

Html代码

<form id="form1" runat="server">
    <div>
    <asp:FormView runat="server" ID="frm" >
    <ItemTemplate>


        </ItemTemplate>
    </asp:FormView>
    <asp:TextBox ID="TextBox1" Text='<%# Bind("Name") %>' runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
    </div>
    </form>

3 个答案:

答案 0 :(得分:1)

您可以直接访问文本框,因为它不在FormView中:

String val= Textbox1.Text;
Textbox1.Text="what ever you are binding?"

我认为你可能需要在你的问题中有点清楚,因为我不明白你想要做什么?

答案 1 :(得分:0)

看起来您已经绑定到显示数据的字段。这不起作用吗?在按钮单击事件处理程序中,您可以从TextBox1.Text检索当前值。

答案 2 :(得分:0)

如果要在回发时更新视图,则需要更新绑定。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        Sku objSku = new Sku();
        objSku.Name = "Test";
        Sku = objSku;
    }
    if (IsPostBack)
    {

        Sku = ViewState["Sku"] as Sku;
    }
    frm.DataSource = Sku;
    frm.DataBind();

}