我在一个页中,gridview和detailsview各分别绑定一个数据源,但在数据库中指向同一个表,当gridview中选中某项之后,用Response.Redirect跳到同一个页面,同时用?向detailsview传值,想在detailsview中更新数据库后,gridview中同步显示更新,但是用Response.AddHeader("Refresh", "0");或者 Response.Redirect("该页面.aspx");都只是页面更新,但gridview并不更新,有没有什么解决方法?麻烦说的详细些。代码如下:
<%@ Page Language="C#" MasterPageFile="~/Administrator/AdmiMasterPage.master" AutoEventWireup="true" CodeFile="Tip.aspx.cs" Inherits="Administrator_Tip" Title="Untitled Page" %><asp:Content ID="Content1" ContentPlaceHolderID="MailContentPlaceHolder" Runat="Server">
<div>
<asp:Button ID="Button1" runat="server" Text="添 加" OnClick="Button1_Click" style="position :absolute; left: 72px; top: 482px;" Width="82px"/>
</div>
</asp:Content>
<asp:Content ID="TipContent" ContentPlaceHolderID="ContentPart" Runat="Server">
<div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" style="position :absolute; left: 57px; top: 521px;"
AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="SqlDataSource1"
Width="472px" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" CellPadding="4" ForeColor="#333333" GridLines="None" >
<Columns>
<asp:HyperLinkField HeaderText="操作" DataNavigateUrlFields= "id" DataNavigateUrlFormatString= "tip.aspx?id={0} " Text="查看详情" >
<ItemStyle HorizontalAlign="Center" />
</asp:HyperLinkField>
<asp:BoundField DataField="title" HeaderText="title" SortExpression="title" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="details" HeaderText="details" SortExpression="details"
Visible="False" >
<ItemStyle Height="30px" />
</asp:BoundField>
<asp:BoundField DataField="time" HeaderText="time" SortExpression="time" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
SortExpression="id" Visible="False" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:mydbConnectionString %>"
DeleteCommand="DELETE FROM [tip] WHERE [id] = @id "
InsertCommand="INSERT INTO [tip] ([title], [details], [time]) VALUES (@title, @details, @time)"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT * FROM [tip] ORDER BY [id] DESC"
UpdateCommand="UPDATE [tip] SET [title] = @title, [details] = @details, [time] = @time WHERE [id] = @id ">
<DeleteParameters>
<asp:Parameter Name="original_id" Type="Int32" />
<asp:Parameter Name="original_title" Type="String" />
<asp:Parameter Name="original_details" Type="String" />
<asp:Parameter DbType="Datetime" Name="original_time" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="title" Type="String" />
<asp:Parameter Name="details" Type="String" />
<asp:Parameter DbType="Datetime" Name="time" />
<asp:Parameter Name="original_id" Type="Int32" />
<asp:Parameter Name="original_title" Type="String" />
<asp:Parameter Name="original_details" Type="String" />
<asp:Parameter DbType="Datetime" Name="original_time" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="title" Type="String" />
<asp:Parameter Name="details" Type="String" />
<asp:Parameter DbType="Datetime" Name="time" />
</InsertParameters>
</asp:SqlDataSource>
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" style="position:absolute; left: 552px; top: 520px;"
DataKeyNames="id" DataSourceID="SqlDataSource2" Height="353px" Width="378px" HeaderText="详情" OnPageIndexChanging="DetailsView1_PageIndexChanging" CellPadding="4" ForeColor="#333333" GridLines="None"
>
<Fields>
<asp:BoundField DataField="title" HeaderText="title" SortExpression="title" />
<asp:BoundField DataField="time" ReadOnly="True" HeaderText="time" SortExpression="time" />
<asp:BoundField DataField="details" HeaderText="details" SortExpression="details" >
<ItemStyle Height="170px" HorizontalAlign="Left" VerticalAlign="Top" Width="300px" />
</asp:BoundField>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
SortExpression="id" Visible="False" />
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
</Fields>
</asp:DetailsView> <asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:mydbConnectionString2 %>" DeleteCommand="DELETE FROM [tip] WHERE [id] = @original_id"
InsertCommand="INSERT INTO [tip] ([title], [details], [time]) VALUES (@title, @details, @time)"
OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [tip] WHERE ([id] = @id2)"
UpdateCommand="UPDATE [tip] SET [title] = @title, [details] = @details, [time] = @time WHERE [id] = @original_id">
<DeleteParameters>
<asp:Parameter Name="original_id" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="title" Type="String" />
<asp:Parameter Name="details" Type="String" />
<asp:Parameter DbType="Datetime" Name="time" />
<asp:Parameter Name="original_id" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="title" Type="String" />
<asp:Parameter Name="details" Type="String" />
<asp:Parameter DbType="Datetime" Name="time" />
</InsertParameters>
<SelectParameters>
<asp:QueryStringParameter DefaultValue="13" Name="id2" QueryStringField="id" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
</div>
</asp:Content>
<%@ Page Language="C#" MasterPageFile="~/Administrator/AdmiMasterPage.master" AutoEventWireup="true" CodeFile="Tip.aspx.cs" Inherits="Administrator_Tip" Title="Untitled Page" %><asp:Content ID="Content1" ContentPlaceHolderID="MailContentPlaceHolder" Runat="Server">
<div>
<asp:Button ID="Button1" runat="server" Text="添 加" OnClick="Button1_Click" style="position :absolute; left: 72px; top: 482px;" Width="82px"/>
</div>
</asp:Content>
<asp:Content ID="TipContent" ContentPlaceHolderID="ContentPart" Runat="Server">
<div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" style="position :absolute; left: 57px; top: 521px;"
AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="SqlDataSource1"
Width="472px" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" CellPadding="4" ForeColor="#333333" GridLines="None" >
<Columns>
<asp:HyperLinkField HeaderText="操作" DataNavigateUrlFields= "id" DataNavigateUrlFormatString= "tip.aspx?id={0} " Text="查看详情" >
<ItemStyle HorizontalAlign="Center" />
</asp:HyperLinkField>
<asp:BoundField DataField="title" HeaderText="title" SortExpression="title" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="details" HeaderText="details" SortExpression="details"
Visible="False" >
<ItemStyle Height="30px" />
</asp:BoundField>
<asp:BoundField DataField="time" HeaderText="time" SortExpression="time" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
SortExpression="id" Visible="False" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:mydbConnectionString %>"
DeleteCommand="DELETE FROM [tip] WHERE [id] = @id "
InsertCommand="INSERT INTO [tip] ([title], [details], [time]) VALUES (@title, @details, @time)"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT * FROM [tip] ORDER BY [id] DESC"
UpdateCommand="UPDATE [tip] SET [title] = @title, [details] = @details, [time] = @time WHERE [id] = @id ">
<DeleteParameters>
<asp:Parameter Name="original_id" Type="Int32" />
<asp:Parameter Name="original_title" Type="String" />
<asp:Parameter Name="original_details" Type="String" />
<asp:Parameter DbType="Datetime" Name="original_time" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="title" Type="String" />
<asp:Parameter Name="details" Type="String" />
<asp:Parameter DbType="Datetime" Name="time" />
<asp:Parameter Name="original_id" Type="Int32" />
<asp:Parameter Name="original_title" Type="String" />
<asp:Parameter Name="original_details" Type="String" />
<asp:Parameter DbType="Datetime" Name="original_time" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="title" Type="String" />
<asp:Parameter Name="details" Type="String" />
<asp:Parameter DbType="Datetime" Name="time" />
</InsertParameters>
</asp:SqlDataSource>
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" style="position:absolute; left: 552px; top: 520px;"
DataKeyNames="id" DataSourceID="SqlDataSource2" Height="353px" Width="378px" HeaderText="详情" OnPageIndexChanging="DetailsView1_PageIndexChanging" CellPadding="4" ForeColor="#333333" GridLines="None"
>
<Fields>
<asp:BoundField DataField="title" HeaderText="title" SortExpression="title" />
<asp:BoundField DataField="time" ReadOnly="True" HeaderText="time" SortExpression="time" />
<asp:BoundField DataField="details" HeaderText="details" SortExpression="details" >
<ItemStyle Height="170px" HorizontalAlign="Left" VerticalAlign="Top" Width="300px" />
</asp:BoundField>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
SortExpression="id" Visible="False" />
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
</Fields>
</asp:DetailsView> <asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:mydbConnectionString2 %>" DeleteCommand="DELETE FROM [tip] WHERE [id] = @original_id"
InsertCommand="INSERT INTO [tip] ([title], [details], [time]) VALUES (@title, @details, @time)"
OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [tip] WHERE ([id] = @id2)"
UpdateCommand="UPDATE [tip] SET [title] = @title, [details] = @details, [time] = @time WHERE [id] = @original_id">
<DeleteParameters>
<asp:Parameter Name="original_id" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="title" Type="String" />
<asp:Parameter Name="details" Type="String" />
<asp:Parameter DbType="Datetime" Name="time" />
<asp:Parameter Name="original_id" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="title" Type="String" />
<asp:Parameter Name="details" Type="String" />
<asp:Parameter DbType="Datetime" Name="time" />
</InsertParameters>
<SelectParameters>
<asp:QueryStringParameter DefaultValue="13" Name="id2" QueryStringField="id" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
</div>
</asp:Content>
想刷新gridview 最简单的方法就是再绑定一次。
把绑定单拿出来写个绑定方法。调用绑定方法。
if(!IsPostBack){
绑定数据
}
或者放到
protected void Page_PreRender(object sender,Eventages e){
这里绑定也一样就不用判断回发了
}