遇到此種情況便需要我們自己來手動建立子DataList事件了。在網路上你可以找到不只一種建立子DataList的方法,在此我將個人認為最簡單的建立事件方法記錄如下。
方法:
手動建立Public Sub後,在子DataList中指定OnItemCommand事件並觸發Public Sub。我們需要作的事是在DataList2中手動輸入OnItemCommand=" Plublic Sub事件名稱 " (如程式第10行)。
Test.aspx
1: <asp:DataList ID="DataList1" runat="server" DataKeyField="拜訪編號"
2: DataSourceID="SqlDataSource1">
3: <ItemTemplate>
4: <font color="red">
5: 拜訪編號:6: <asp:Label ID="拜訪編號Label" runat="server" Text='<%# Eval("拜訪編號") %>' />
7: <asp:Button ID="Button1" runat="server" Text="按鈕1" CommandName="TestButton" />
8: </font>
9: <asp:DataList ID="DataList2" runat="server"
10: DataSourceID="SqlDataSource2" OnItemCommand="DataList2_ItemCommand">
11: <ItemTemplate>
12: 拜訪目的:13: <asp:Label ID="拜訪目的Label" runat="server" Text='<%# Eval("拜訪目的") %>' />
14: <asp:Button ID="Button1" runat="server" Text="按鈕2" CommandName="TestButton2" />
15: </ItemTemplate>
16: </asp:DataList>
17: <br />
18: </ItemTemplate>
19: </asp:DataList>
在Test.aspx.vb中建立Public Sub,其名稱為OnItemCommand事件指定呼叫的名稱。
Test.aspx.vb
1: Public Sub DataList2_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs)
2: If e.CommandName = "TestButton2" Then
3: Response.Write("This is DataList2")
4: End If
5: End Sub
在我們按下按鈕2後便可以正確觸發子DataList的ItemCommand事件:
0 意見:
張貼意見