2014-12-22 6 views
2

Я хочу вызвать событие textchange txtPlanCode внутри usercontrol, но, к сожалению, мой текстовый обмен не запускается. Что не так с моим кодом?TextBox textchange событие внутри usercontrol

Пожалуйста, помогите спасибо :)

//CodeBehind of my page 
protected void ucPlan_OnTextChanged(object sender, EventArgs e) 
{ 
    TxtPlanDesc.Text = Session["PlanDesc"].ToString(); 
} 

//Client side (.aspx) 

<uc2:PlanID ID="ucPlanCode" runat="server" ucPlan_OnTextChanged="ucPlan_OnTextChanged" autopostback="true"/> 

//ucPlanID.ascx.cs 

protected void Page_Load(object sender, EventArgs e) 
{ 

} 

public string PlanID 
{ 
    get 
    { 
     return txtPlanCode.Text; 
    } 
    set 
    { 
     txtPlanCode.Text = value; 
    } 
} 

public bool AutoPostBack 
{ 
    get 
    { 
      return txtPlanCode.AutoPostBack; 
    } 
    set 
    { 
      txtPlanCode.AutoPostBack = value; 
    } 
} 

//ucPlanID.ascx 

<asp:TextBox ID="txtPlanCode" runat="server" CssClass="form-control" MaxLength="20" Enabled="true" Text='<%#Eval("PlanCode") %>' OnTextChanged="txtPlanCode_TextChanged"></asp:TextBox> 
+1

Добавить 'AutoPostBack = "истинный"' к вашему управление – Mivaweb

ответ

4

на пользовательский элемент управления:

public event EventHandler TextChangeEvent; 

    protected void TextBox1_TextChanged(object sender, EventArgs e) 
    { 
     if (TextChangeEvent != null) 
      TextChangeEvent(this, e); 
    } 

<asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged"></asp:TextBox> 

на странице:

<script runat="server"> 
protected void Some_TextChanged(object sender, EventArgs e) 
    { 
     // your code here 
    } 
    </script> 
+0

Решение на UserControl s как выше, пузырьки вверх события до родительского контейнера, который выставляет событие во внешний мир компонента. Его можно упростить, используя «TextChangeEvent» .Invoke (this, e) ' –

 Смежные вопросы

  • Нет связанных вопросов^_^