2011-01-26 6 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(); 

} 
관련 문제