2012-06-19 15 views
0

我在页面上有两个网格浏览器 第一个数据网格(requestgrid)使用存储过程填充,该存储过程具有参数,该参数由查询字符串提供。如何传递数据网格中的选择以显示另一个数据网格

页面中的其它网格只需要显示时,我选择在第一datagrid.Iam能够使用下面的代码,以获得从选择的RequestID行

void Requesttbl_RowCommand(object sender, GridViewCommandEventArgs e) 
     { 
      if (e.CommandName.Equals("clickrequestid")) 
      { 

       Requesttbl.Visible = false; 
       int requestid = (int)e.CommandArgument; 
       } 
     } 

我的问题是我如何使用此的requestId把它作为参数传递给第二gridview的

下面的代码是在标记页面我的第二个网格视图代码在

<asp:GridView ID="SelectedReports" runat="server" AutoGenerateColumns="False" 
      DataSourceID="showselectedreports" EnableModelValidation="True"> 
      <Columns> 
       <asp:BoundField DataField="Requestid" HeaderText="Requestid" 
        SortExpression="Requestid" /> 
       <asp:BoundField DataField="rptdesctext" HeaderText="rptdesctext" 
        SortExpression="rptdesctext" /> 
       <asp:BoundField DataField="Completeddt" HeaderText="Completeddt" 
        SortExpression="Completeddt" /> 
       <asp:BoundField DataField="Analyst" HeaderText="Analyst" ReadOnly="True" 
        SortExpression="Analyst" /> 
      </Columns> 
     </asp:GridView> 
     <asp:SqlDataSource ID="showselectedreports" runat="server" 
      ConnectionString="<%$ ConnectionStrings:UnderWritingConnectionString %>" 
      SelectCommand="ShowCustomerSelectedRequests" 
      SelectCommandType="StoredProcedure"> 
      <SelectParameters> 
how do i use the requestid as a parameter here**strong text** 
          </SelectParameters> 
     </asp:SqlDataSource> 

谢谢dvance

+0

绑定'SelectParameters'中的变量类类背后的代码,当你在第一格选择的东西,更新变量,并调用另一个'DataBind'? – MilkyWayJoe

+0

您能否详细地帮助我,因为我很新,只是不知道如何处理您的建议 –

回答

0

ScreenShot

这个例子可以帮助你,因为我从一个网格教职员获得价值CountryID和填充在选定的国家ID等,根据你的质量要求而改变。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
      DataKeyNames="CountryID" DataSourceID="SqlDataSource1" 
       onselectedindexchanged="GridView1_SelectedIndexChanged"> 
       <Columns> 
        <asp:CommandField ShowSelectButton="True" /> 
        <asp:BoundField DataField="CountryID" HeaderText="CountryID" ReadOnly="True" 
         SortExpression="CountryID" /> 
       </Columns> 
      </asp:GridView> 
      <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
      ConnectionString="<%$ ConnectionStrings:testConnectionString %>" 
      SelectCommand="SELECT [CountryID], [Country] FROM [Tbl_Country]"> 
     </asp:SqlDataSource> 
      <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" 
       DataKeyNames="CountryID" DataSourceID="SqlDataSource2"> 
       <Columns> 
        <asp:BoundField DataField="CountryID" HeaderText="CountryID" ReadOnly="True" 
         SortExpression="CountryID" /> 
        <asp:BoundField DataField="Country" HeaderText="Country" 
         SortExpression="Country" /> 
       </Columns> 
      </asp:GridView> 
      <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
       ConnectionString="<%$ ConnectionStrings:testConnectionString %>" 
       SelectCommand="SELECT * FROM [Tbl_Country] WHERE ([CountryID] = @CountryID)"> 
       <SelectParameters> 
        <asp:ControlParameter ControlID="GridView1" Name="CountryID" 
         PropertyName="SelectedValue" Type="Int32" /> 
       </SelectParameters> 
      </asp:SqlDataSource> 
+0

谢谢much.I试图做你的例子中的相同。我应该写什么代码在事件处理程序onselectedindexchanged =“GridView1_SelectedIndexChanged –

+0

我无法将gridview1中的选定值传递给gridview2并且代码类似于您的示例 –

相关问题