【问题标题】:General Function一般功能
【发布时间】:2013-11-25 12:57:24
【问题描述】:

在我正在处理的一个项目中,我有 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) 被调用?

【问题讨论】:

  • 如何将事件处理程序分配给按钮单击事件?

标签: asp.net vb.net ajax.net


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

【讨论】:

  • 我正在寻找的是少写代码,但是你建议的方式会花费我很多时间并使代码变得如此复杂
  • @Thair 您没有太多选项可以缩短已有的内容,您必须指定要调用的每个单独的方法(即SaveText_x)和字段通过(即txt_x)。不可能动态地做到这一点。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-11
    • 2015-11-28
    • 2019-10-22
    • 1970-01-01
    • 2012-04-05
    • 2020-01-10
    • 2013-12-03
    • 1970-01-01
    相关资源
    最近更新 更多