0

さて、私はしばらくの間この問題に取り組んできました。役に立たない答えを探している、それは私が正しいキーワードを使用していたかどうかということです:(

シナリオ

かつてのウェブサイトのさまざまなページで使用できる検索コントロールが必要です。したがって、ユーザーコントロールを作成します。

ユーザーコントロールの設定。(子)

いくつかのリストボックス、テキストボックス、ボタン、およびSQLDatasourceがあります。ユーザーは、関連するフィールドで値を選択または入力してボタンをクリックします。ボタンClickイベントが発生し、DBからデータを取得して、SQLDatasourceに保存します。これはすべてうまく機能します。

親ページの設定。

これには、子に含まれているSQLDatasourceに含まれているデータを表示する必要があるGridviewが含まれています。

問題。

Gridviewに割り当てられるSQLDatasourceにアクセスする方法がわかりません。

質問。

  1. どのようにしてSQLDatasourceにアクセスできますか?
  2. Gridviewはページングできますか?
  3. 2が「いいえ」の場合、それをページにするための代替オプションは何ですか?
  4. SQLDatasourceをGridviewに割り当てるのに最適なイベントは何ですか?
4

1 に答える 1

0

常に同じ接続文字列を使用するように見えますが、その場合は、ユーザー コントロール (.ascx.cs) のコード ビハインドを参照して、SqlDataSource を asp gridview にバインドしてみてください。

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            LoadData();
    }
    private void LoadData()
    {
        //ConnectionStringSettingsCollection ConnctionStringCollection = ConfigurationManager.ConnectionStrings;
        string ConnectionString = <your connection string>;
        string SelectQuery = string.Empty;
        //if (!HasStoredProcedure)
        //    SelectQuery = QueryOrStoredProcedure;

            DashGridDataSource.ConnectionString = ConnectionString;
            DashGridDataSource.SelectCommandType = SqlDataSourceCommandType.Text;
            DashGridDataSource.SelectCommand = SelectQuery;
            DashGridDataSource.EnableCaching = true;
            DashGrid.DataSourceID = DashGridDataSource.ID;
        }
    }

私の .ascx ファイルは次のようになります。

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DashGridWidget.ascx.cs" Inherits="*****.Widgets.DashGridDefault" %>
<asp:SqlDataSource ID="DashGridDataSource" runat="server" EnableCaching="true" CacheDuration="300"></asp:SqlDataSource>
<asp:GridView ID="DashGrid" runat="server"
AllowPaging="True" AllowSorting="True" onsorting="DashGrid_Sorting">

.ascx.cs の先頭にあるカスタム コントロールにカスタム プロパティを追加することもできます。

public partial class DashGridDefault : System.Web.UI.UserControl
{
    public string QueryOrStoredProcedure { get; set; }
    public bool HasStoredProcedure { get; set; }
    public int DatabaseEnum { get; set; }

これは私がコントロールを使用する方法です:

<Dashboard:IconGrid runat="server" ID="proceedings" DatabaseEnum="3" HasStoredProcedure="false" SessionVariableID="Proceeding" QueryOrStoredProcedure="SELECT TOP 100 CONTACTS FROM CUSTOMERS" />
于 2012-11-13T14:24:17.420 に答える