2013-11-25 4 views
0

в проекте я работаю у меня есть TabContainer (AJAX.NET) имеют много tabPanels все они делают ту же функцию НО каждый на на различной таблицеОбщие функции

дайте мне дать образец:

<asp:TabContainer ID="TabContainer3" runat="server" ActiveTabIndex="0" BorderStyle="None" 
    BorderWidth="0" CssClass="MyTabStyle" Width="625px"> 
    <asp:TabPanel ID="TabPanel1" runat="server"> 
     <HeaderTemplate> 
      Tab_x 
     </HeaderTemplate> 
     <ContentTemplate> 
      <asp:TextBox ID="txt_x" runat="server"></asp:TextBox> 
      <asp:Button ID="btnx" runat="server" Text="Button" />     
     </ContentTemplate> 
    </asp:TabPanel> 
    <asp:TabPanel ID="TabPanel2" runat="server"> 
     <HeaderTemplate> 
      Tab_y 
     </HeaderTemplate> 
     <ContentTemplate> 
      <asp:TextBox ID="txt_y" runat="server"></asp:TextBox> 
      <asp:Button ID="btny" runat="server" Text="Button" />     
     </ContentTemplate> 
    </asp:TabPanel> 
</asp:TabContainer> 

код позади (VB.NET)

Protected Sub btnx_Click(sender As Object, e As System.EventArgs) Handles btnx.Click 
    SaveText_x(txt_x.Text) 
End Sub 

Protected Sub btny_Click(sender As Object, e As System.EventArgs) Handles btny.Click 
    SaveText_y(txt_y.Text) 
End Sub 

есть способ создать общую или Sub Function, так что если я нажал btnx функция Save_x (txt_x.Text) можно назвать

и когда я нажимаю btny функции save_y (txt_y.Text) будем называть ?

+0

Как вы назначаете обработчик события нажатия кнопки? –

ответ

0

1) Пользовательский контроль с общедоступным строковым свойством. использовать состояние просмотра для сохранения значения этого свойства.

2) Добавьте, что пользовательский элемент управления в ваших вкладках установил это свойство со значениями, такими как «X» или «Y» или любым.

3) При щелчке на кнопке проверьте это свойство с помощью if .. else if .. else или с помощью оператора switch и вызовите варианты функций SaveText.

1

Вы можете назначить несколько кнопок, чтобы иметь один и тот же обработчик щелчка с помощью следующего кода:

Protected Sub btn_Click(sender As Object, e As System.EventArgs) Handles btnx.Click, btny.Click 
    Dim btn As Button = CType(sender, Button) 

    If btn.ID = "btnx" Then 
     SaveText_x(txt_x.Text) 
    ElseIf btn.ID = "btny" Then 
     SaveText_y(txt_y.Text) 
    End If 
End Sub 

Оба btnx и btny оба огня это Sub и он будет проверять кнопку, пославшего его, чтобы увидеть, какой метод вызов.

+0

Я ищу, чтобы написать меньше кода, но способ, который вы предлагаете, будет стоить мне много времени и сделать код настолько сложным. – Thair

+1

@Thair У вас не так много вариантов, чтобы сократить то, что у вас уже есть, у вас ** есть ** для указания каждого индивидуального метода вызова (т.е. «SaveText_x') и поля для передачи (т. е.' txt_x'). Нет возможности сделать это динамически. – Nunners

+0

Вы правы, я сдался: D – Thair