2011-01-26 12 views
0

ボタンクリック時にテキストボックスにバインドして変更値を取得する方法。値にテキストボックスをバインド

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> 

答えて

1

は、それがそうFormViewコントロールではないとあなたはあなたのテキストボックスへの直接アクセスを持っている:

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

は、私はあなたに少し明確にする必要があるかもしれないと思いますあなたは何をしようとしているのか分からないので質問してください。

0

既にデータを表示するフィールドにバインドしているようです。これは機能していないのですか?ボタンクリックイベントハンドラ内で、現在の値をTextBox1.Textから取得できます。

+0

は、しかし、私は私のSKUオブジェクトは、テキストボックスの値で更新することにしたい(それは私がボタンクリックで明示的にオブジェクトに値を設定してくださいすることなく、自動的にSKUオブジェクトに通知しなければならない。これが可能である。(I注コントロールをフォームビューに置かなかった場合、フォームビューの外にあります)。 – user476566

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(); 

} 
関連する問題