2010-08-02 83 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