2013-05-30 60 views
0

這是我在建設自己的網站,所以道歉提前如果這是一個愚蠢的問題,第一次嘗試..更新的SqlDataSource的SelectCommand客戶端

我有從SqlDataSource填充一個gridview。我也有一個控件,它有AutopostBack=True根據更新後控件的內容來更新gridview。

我到目前爲止的代碼是(我已經改變了真正的字段名!)

testPage.aspx:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
    AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Lookup" 
    DataSourceID="SqlDataSource1"> 
    <Columns> 
     //Column headings removed for clarity 
    </Columns> 
</asp:GridView> 

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ 
ConnectionStrings:ConnectionString %>" SelectCommand="SELECT [Field1], [Field2], 
[Field3], [Field4], [Field5], [Field6], [Field7], [Field8] FROM [Analysis] 
ORDER BY [Field1], [Field2] DESC, [Field3] DESC"></asp:SqlDataSource> 

testPage.aspx.cs:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Page.IsPostBack) 
     { 
      if (ctl04.Value == null) 
      { 
       SqlDataSource1.SelectCommand = "SELECT [Field1], [Field2], 
       [Field3], [Field4], [Field5], [Field6], [Field7], [Field8] 
       FROM [Analysis] ORDER BY [Field1], [Field2] DESC, [Field3] 
       DESC"; 
      } 
      else 
      { 
       SqlDataSource1.SelectCommand = "SELECT [Field1], [Field2], 
       [Field3], [Field4], [Field5], [Field6], [Field7], [Field8] 
       FROM [Analysis] WHERE [Lookup] IN ('" + 
       ctl04.Text.ToString().Replace(",","','") + "') ORDER BY 
       [Field1], [Field2] DESC, [Field3] DESC"; 

      } 
      gridView1.DataBind(); 
     } 

    } 

到目前爲止,這在測試時效果很好。然而,我不確定的是,如果說有多個用戶使用這個頁面,這會導致問題,因爲它正在運行服務器端。例如,如果1個用戶更新了控件,每個其他用戶在首次訪問頁面時是否也會在gridView中看到該選擇?

任何人都可以提供一些關於如何使這個工作客戶端的指針,所以在控制選擇不會影響其他用戶?

+0

更新控制是什麼意思?同時在您的代碼中刪除對gridview1.Databind的重複調用。 – DevelopmentIsMyPassion

+0

如果user1更新控件'ctl04',它是否僅爲user1或所有用戶更改'SqlDataSource1.SelectCommand'?如果有20個用戶在同一時間進行更改,那麼它是否會成爲一場競賽,讓其他用戶不斷改變他們的觀點,沒有人可以在GridView中查看他們對控件的更改? – user3357963

+0

它肯定會改變該用戶。 – DevelopmentIsMyPassion

回答

1

如果1個用戶更新控件,其他用戶在第一次訪問頁面時是否還會在gridView中看到該選擇?

NO

ASP.net渲染爲每個用戶新的頁面,通過一個用戶改變選擇命令不會影響到其他用戶。如果你從數據庫或共享文件等獲得選擇命令。並且由一個用戶更新將看到所有其他人的更改