0

在我正在处理的项目中,我有 TabContainer (AJAX.NET) 有许多 tabPanel,它们都在执行相同的功能,每个都在不同的表上

让我举个例子:

    <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) 被调用?

4

2 回答 2

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,它会检查发送它的按钮以查看调用哪个方法。

于 2013-11-25T13:05:54.190 回答
0

1)使用公共字符串属性进行用户控制。使用视图状态来存储该属性的值。

2)将该用户控件添加到您的选项卡中,将该属性设置为“X”或“Y”或任何值。

3)在按钮单击检查该属性与 if .. else if .. else 或通过 switch 语句并调用您的 SaveText 函数变体。

于 2013-11-25T13:05:41.463 回答