2012-09-06 94 views
0

你能帮我解决这个问题吗?当我点击ID 1,2 ...时,从查询字符串中取出ID,并在另一个表中显示id_proba中来自查询字符串的id相等的名称。这是好的,并告诉我。现在我喜欢当我在GridView1中点击ID 1,2 ..只刷新gridview 2而不是所有的页面。需要使用gridview来放入Ajax更新面板。我把更新面板中的gridview2,但不知道在代码中写什么?更新面板gridview asp.net C#

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataKeyNames="id" DataSourceID="SqlDataSource1" CellPadding="4" 
    ForeColor="#333333" GridLines="None" 
    onselectedindexchanged="GridView1_SelectedIndexChanged"> 
    <AlternatingRowStyle BackColor="White" /> 
    <Columns> 
     <asp:CommandField ShowSelectButton="True" /> 
     <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" /> 

     <asp:HyperLinkField 
    DataTextField="id" 
    DataTextFormatString=" {0}" 
    DataNavigateUrlFields="id" HeaderText="id" 
    DataNavigateUrlFormatString="WebForm1.aspx?ID={0}" /> 
    </Columns> 
    <EditRowStyle BackColor="#2461BF" /> 
    <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
    <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
    <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
    <RowStyle BackColor="#EFF3FB" /> 
    <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
    <SortedAscendingCellStyle BackColor="#F5F7FB" /> 
    <SortedAscendingHeaderStyle BackColor="#6D95E1" /> 
    <SortedDescendingCellStyle BackColor="#E9EBEF" /> 
    <SortedDescendingHeaderStyle BackColor="#4870BE" /> 
</asp:GridView> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ProbaConnectionString %>" 
    DeleteCommand="DELETE FROM [Proba1] WHERE [id] = @id" 
    InsertCommand="INSERT INTO [Proba1] ([name]) VALUES (@name)" 
    SelectCommand="SELECT [name], [id] FROM [Proba1]" 
    UpdateCommand="UPDATE [Proba1] SET [name] = @name WHERE [id] = @id"> 
    <DeleteParameters> 
     <asp:Parameter Name="id" Type="Int32" /> 
    </DeleteParameters> 
    <InsertParameters> 
     <asp:Parameter Name="name" Type="String" /> 
    </InsertParameters> 
    <UpdateParameters> 
     <asp:Parameter Name="name" Type="String" /> 
     <asp:Parameter Name="id" Type="Int32" /> 
    </UpdateParameters> 
</asp:SqlDataSource> 
<br /> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" 
      DataSourceID="SqlDataSource2"> 
      <Columns> 
       <asp:BoundField DataField="id_proba" HeaderText="id_proba" 
        SortExpression="id_proba" /> 
       <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" /> 
      </Columns> 
     </asp:GridView> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
     </asp:ScriptManager> 
     <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
      ConnectionString="<%$ ConnectionStrings:ProbaConnectionString %>" 
      SelectCommand="SELECT [id_proba], [name] FROM [proba3] WHERE ([id_proba] = @id_proba)"> 
      <SelectParameters> 
       <asp:QueryStringParameter Name="id_proba" QueryStringField="ID" Type="Int32" /> 
      </SelectParameters> 
     </asp:SqlDataSource> 
    </ContentTemplate> 
</asp:UpdatePanel> 
+0

你可以使用的GridView的selectedIndex更改事件做... –

回答

1

要通过单击GridView1你可以在GirdView1一个JavaScript onclick处理程序添加到链接刷新更新面板。
在此事件处理程序中,您可以通过调用__doPostBack来刷新更新面板。你可以使用jQuery的事件处理程序添加到所有一标签在网格中,如下所示:

<script> 
    $(function() { 
     $("#<%=GridView1.ClientID%> a").bind('click', function() { 
      refreshUpdatePanel(); 
      }); 
    }); 

    function refreshUpdatePanel() 
    { 
    __doPostBack('UpdatePanel1', ''); 
    } 
</script> 
0

如果你的网格不是太大,把它们放在同一个更新面板中。
通过这种方式,您不必编写任何代码即可获得GridView2更新GridView1中的点击次数。

像这样:

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
      DataKeyNames="id" DataSourceID="SqlDataSource1" CellPadding="4" 
      ForeColor="#333333" GridLines="None" 
      onselectedindexchanged="GridView1_SelectedIndexChanged"> 
      <AlternatingRowStyle BackColor="White" /> 
      <Columns> 
       <asp:CommandField ShowSelectButton="True" /> 
       <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" /> 

       <asp:HyperLinkField 
      DataTextField="id" 
      DataTextFormatString=" {0}" 
      DataNavigateUrlFields="id" HeaderText="id" 
      DataNavigateUrlFormatString="WebForm1.aspx?ID={0}" /> 
      </Columns> 
      <EditRowStyle BackColor="#2461BF" /> 
      <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
      <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
      <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
      <RowStyle BackColor="#EFF3FB" /> 
      <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
      <SortedAscendingCellStyle BackColor="#F5F7FB" /> 
      <SortedAscendingHeaderStyle BackColor="#6D95E1" /> 
      <SortedDescendingCellStyle BackColor="#E9EBEF" /> 
      <SortedDescendingHeaderStyle BackColor="#4870BE" /> 
     </asp:GridView> 

     <br /> 
     <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" 
      DataSourceID="SqlDataSource2"> 
      <Columns> 
       <asp:BoundField DataField="id_proba" HeaderText="id_proba" 
        SortExpression="id_proba" /> 
       <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" /> 
      </Columns> 
     </asp:GridView> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
     </asp:ScriptManager> 
     <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
      ConnectionString="<%$ ConnectionStrings:ProbaConnectionString %>" 
      SelectCommand="SELECT [id_proba], [name] FROM [proba3] WHERE ([id_proba] = @id_proba)"> 
      <SelectParameters> 
       <asp:QueryStringParameter Name="id_proba" QueryStringField="ID" Type="Int32" /> 
      </SelectParameters> 
     </asp:SqlDataSource> 
    </ContentTemplate> 
</asp:UpdatePanel> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ProbaConnectionString %>" 
    DeleteCommand="DELETE FROM [Proba1] WHERE [id] = @id" 
    InsertCommand="INSERT INTO [Proba1] ([name]) VALUES (@name)" 
    SelectCommand="SELECT [name], [id] FROM [Proba1]" 
    UpdateCommand="UPDATE [Proba1] SET [name] = @name WHERE [id] = @id"> 
    <DeleteParameters> 
     <asp:Parameter Name="id" Type="Int32" /> 
    </DeleteParameters> 
    <InsertParameters> 
     <asp:Parameter Name="name" Type="String" /> 
    </InsertParameters> 
    <UpdateParameters> 
     <asp:Parameter Name="name" Type="String" /> 
     <asp:Parameter Name="id" Type="Int32" /> 
    </UpdateParameters> 
</asp:SqlDataSource> 
+0

我知道,但我需要这样做,就像我上面写的那样 – user1408956