0

これは自分のウェブサイトを構築するのは初めての試みなので、これがばかげた質問である場合は事前に謝罪してください..

から取り込まれたグリッドビューがありSqlDataSourceます。AutopostBack=Trueまた、更新後のコントロールの内容に基づいてグリッドビューを更新する必要があるコントロールもあります。

これまでのコードは (実際のフィールド名を変更しました!)

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 でその選択を確認しますか?

コントロールでの選択が他のユーザーに影響を与えないように、これをクライアント側でのみ機能させる方法について、誰かがいくつかの指針を与えることができますか?

4

1 に答える 1