2010-08-02 81 views
0

我的计算机上有IIS托管的asp.net Intranet站点。在页面上获取更新的查询结果

在一个页面上,您可以输入两个用户ID,并在我们的(自定义应用)系统中对他们的角色进行并排比较。

我经常在设置新用户时使用它来添加角色。运行查询后,如果我更改角色并再次运行查询,它将不会显示更新的结果。它以某种方式被缓存。我必须转到另一个页面并返回并运行查询以获取更新的结果。

如何避免即可离开,以获得更新的查询结果displayed.n


这里的代码

<asp:Label ID="Label1" runat="server" Text="Username"></asp:Label> 
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
    <br /> 
    <asp:Label ID="Label2" runat="server" Text="Username"></asp:Label> 
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 
    <asp:Button ID="Button1" runat="server" 
     Text="Compare Permissions" /> 
    <br /><br /> 
    <asp:GridView ID="GridView1" runat="server" CssClass="mGrid" DataSourceID="SqlDataSource1"> 

    </asp:GridView> 
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
     ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
     ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="WITH 
firstPerson AS 
(
select username, security_role from user_role 
where username=upper(:Username1) 
), 
secondPerson as 
(
select username, security_role from user_role 
where username=upper(:UserName2) 
) 
select firstPerson.username , firstPerson.security_role,secondPerson.username,secondPerson.security_role from firstPerson FULL JOIN secondPerson 
    on firstPerson.security_role=secondPerson.security_role order by firstPerson.security_role, secondPerson.Security_role"> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="TextBox1" Name="Username1" 
       PropertyName="Text" /> 
      <asp:ControlParameter ControlID="TextBox2" Name="UserName2" 
       PropertyName="Text" /> 
     </SelectParameters> 
    </asp:SqlDataSource> 
+1

我会发布您的代码,获取您的数据,以及如何显示它以获得更好的帮助。 – 2010-08-02 19:54:10

回答

0

我认为这个问题很简单,你添加这些新的值后,你不刷新你的GridView。没有任何控件可以“自动实现”数据已经改变。相反,您需要手动完成,通过将数据视图控件重新绑定到DataBind()的新(新)数据。

0

检查您获取数据的位置。

如果你像

if(!IsPostBack) 

if语句有它这意味着你将只能得到当你第一次运行的数据。当您离开时,然后返回时,您是第一次再次加载该页面。

+0

通常'if(!IsPostBack)'是正确的事情。否则,代码将在每个回发站上运行 - 如果他的页面上有很多控件是autopostback =“true”,那么他可能不需要这些代码。' – 2010-08-02 19:56:00

+0

@ rlb.usa您是正确的,它是正确的要做的事。然而,根据他的代码,如果他正在说一个DataTable!IsPostBack它可能需要刷新每个负载。它真的取决于它是如何实现的。 – 2010-08-02 20:13:54