2013-11-25 57 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或功能,所以如果我点击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