在我正在进行的一个项目中,我有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)时,是否被调用?
您可以分配多个按钮来拥有相同的点击处理程序,代码如下:
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,它会检查发送它的按钮,看看该调用哪个方法。
1)使用公共字符串属性生成用户控件。使用视图状态来存储该属性的值。
2) 将该用户控件添加到选项卡中,使用"X"、"Y"或任意值设置该属性。
3) 单击按钮,用if..检查该属性。。否则如果。。else或通过switch语句,并调用SaveText函数变体。