好人 我为我的基本英语提前道歉。 我的问题如下 我已经把一个gridview放在另一个手风琴里面的手风琴里面。 每个人都关联到一个objectdatasource。 现在,每个objectdatasource都有一个用于编写e.InputParameters的选择事件。 问题是我想写的参数之一是包含objectdatasource的项目的数据项。Objectdatasource
的obselected函数的ARGS是: BYVAL发件人作为对象,BYVALË作为System.Web.UI.WebControls.ObjectDataSourceSelectingEventArgs
的firstone是ObjectDataSourceView至极具有不是namingcontainer。而且我无法从ObjectDataSourceSelectingEventArgs中获取任何关于数据项的引用。
所以,我的问题在于如何获得objectdatasource的引用,包含它的项目或与特定项目关联的dataitem到我的“onselecting”函数中。
在此先感谢。
的VB是
Imports System.Data.SqlClient
Public Class WebForm2
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Sub Page_lala(ByVal sender As Object, ByVal e As EventArgs) Handles Me.InitComplete
Accordion1.DataSourceID = ObjectDataSource1.UniqueID
Accordion1.DataBind()
End Sub
Protected Sub Accordion1_OnItemCommand(ByVal sender As Object, ByVal e As AjaxControlToolkit.AccordionCommandEventArgs) Handles Accordion1.ItemCommand
Dim Accordion2 As Control = e.Container.FindControl("Accordion2")
Dim objectDataSource As Control = e.Container.FindControl("ObjectDataSource2")
If Accordion1 IsNot Nothing And objectDataSource IsNot Nothing Then
AddHandler DirectCast(objectDataSource, ObjectDataSource).Selecting, AddressOf ObjectDataSource2_selecting
AddHandler DirectCast(Accordion2, AjaxControlToolkit.Accordion).ItemCommand, AddressOf Accordion2_ItemCommand
DirectCast(Accordion2, AjaxControlToolkit.Accordion).DataSourceID = DirectCast(objectDataSource, ObjectDataSource).ID
DirectCast(Accordion2, AjaxControlToolkit.Accordion).DataBind()
End If
End Sub
Protected Sub ObjectDataSource2_selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ObjectDataSourceSelectingEventArgs)
Dim parameters(0) As SqlParameter
Dim dsv As ObjectDataSourceView = DirectCast(sender, ObjectDataSourceView)
parameters(0) = New SqlParameter("@cliente", "30697269610")
e.InputParameters("param") = parameters
End Sub
Protected Sub ObjectDataSource3_selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ObjectDataSourceSelectingEventArgs)
Dim parameters(0) As SqlParameter
Dim dsv As ObjectDataSourceView = DirectCast(sender, ObjectDataSourceView)
parameters(0) = New SqlParameter("@documento", "FC0030-00040199")
e.InputParameters("param") = parameters
End Sub
Protected Sub Accordion2_ItemCommand(ByVal sender As Object, ByVal e As AjaxControlToolkit.AccordionCommandEventArgs) 'Handles Accordion2.ItemCommand
Dim gridview As Control = e.Container.FindControl("gridviewAplicaciones")
Dim objectDataSource As Control = e.Container.FindControl("ObjectDataSource3")
If gridview IsNot Nothing And objectDataSource IsNot Nothing Then
AddHandler DirectCast(objectDataSource, ObjectDataSource).Selecting, AddressOf ObjectDataSource3_selecting
DirectCast(gridview, GridView).DataSourceID = DirectCast(objectDataSource, ObjectDataSource).ID
DirectCast(gridview, GridView).DataBind()
End If
End Sub
End Class
的ASP是
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm2.aspx.vb" Inherits="WebApplication4.WebForm2" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:ScriptManager ID="ScriptManager1" runat="server" >
</asp:ScriptManager>
<asp:Accordion id="Accordion1" runat="server"
SelectedIndex="-1" RequireOpenedPane="false" ClientIDMode="Static">
<HeaderTemplate><%# Container.DataItem("CUSTNMBR")%>/<%# Container.DataItem("CUSTNAME")%></HeaderTemplate>
<ContentTemplate>
<asp:LinkButton runat="server" ID="LinkButton1" Text="ver mas 1"></asp:LinkButton>
<asp:Accordion id="Accordion2" runat="server" OnItemCommand="Accordion2_ItemCommand"
SelectedIndex="-1" RequireOpenedPane="false">
<HeaderTemplate><%# Container.DataItem("DOCNUMBR")%></HeaderTemplate>
<ContentTemplate>
<asp:LinkButton runat="server" ID="LinkButton2" Text="Ver mas2"
></asp:LinkButton>
<asp:GridView runat="server" ID="gridviewAplicaciones" AutoGenerateColumns="true">
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource3" runat="server"
SelectMethod="ExecuteDataset" TypeName="WebApplication4.DbHelper">
<SelectParameters>
<asp:Parameter DefaultValue="multiconex_aplicaciones" Name="nombreSP"
Type="String" />
<asp:Parameter Name="param" Type="Object" />
</SelectParameters>
</asp:ObjectDataSource>
</ContentTemplate>
</asp:Accordion>
<asp:ObjectDataSource ID="ObjectDataSource2" runat="server"
SelectMethod="ExecuteDataset" TypeName="WebApplication4.DbHelper" >
<SelectParameters>
<asp:Parameter DefaultValue="multiconex_aging" Name="nombreSP"
Type="String" />
<asp:Parameter Name="param" Type="Object" />
</SelectParameters>
</asp:ObjectDataSource>
</ContentTemplate>
</asp:Accordion>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
SelectMethod="ExecuteDataset" TypeName="WebApplication4.DbHelper">
<SelectParameters>
<asp:Parameter DefaultValue="multiconex_rm00101" Name="nombreSP"
Type="String" />
<asp:Parameter Name="param" Type="Object" />
</SelectParameters>
</asp:ObjectDataSource>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>