0

私はWebアプリケーションに取り組んでいます。そして、いくつかの値をグリッドビューにデータバインドする必要がありますが、これは成功しましたが、いくつかの問題があります...

基本的にすべてがコード (c#) 内で発生するため、グリッドビューなどを定義する直接ページがあります ...

コードは次のとおりです。

        ResultTable searchResult=.... //Results

        gridSearchResults = new GridView();
        gridSearchResults.Width = Unit.Percentage(100.0);
        gridSearchResults.BorderWidth = 0;
        gridSearchResults.DataSource = resultsTable;
        gridSearchResults.DataBind();

結果テーブルには、優先度、タイトル、日付、およびリンクのテーブルがあります。

すべてをバインドすると、必要なすべてのデータを含む素敵なテーブルが得られますが、すべてがテキストですが、私の場合、タイトルを「結果テーブルのリンク列からのリンク」とのリンクとして使用したいと思います。また、日付を再フォーマットしたいでしょう。

どうすれば正確にそれを行うことができますか?

もう 1 つのことは、行スタイルと交互行スタイルを設定する方法です。プロパティは GET のみのようですが、どのように設定すればよいですか?

繰り返しますが、クラス内ではすべてが C# である必要があります。

4

2 に答える 2

1

必要に応じてフォーマットされたデータを取得するには、列を明示的に作成する必要があります。

gridSearchResults = new GridView { 
    AutoGenerateColumns=false,
    // other properties...
};
gridSearchResults.Columns.Add(new HyperLinkField {
    HeaderText = "MyLink",
    DataTextField = "MyField"
    // and so on
});

次に、AlternatingRowStyle読み取り専用ですが、個々のプロパティを設定できます。

gridSearchResults.AlternatingRowStyle.BackColor = System.Drawing.Color.Red;
于 2013-05-30T13:56:47.400 に答える
1

GridView の列を定義できます。あなたの場合、タイプの列が必要になるように思えますHyperLinkField。そのクラスでは、プロパティを指定しDataNavigateUrlFieldsDataTextField. DataTextField を使用すると、表示テキストを含む DataSource からフィールドの名前を指定できます。この場合、これは Title 列のように聞こえます。DataNavigateUrlFields を使用すると、URL の入力に使用される DataSource からフィールドを指定できます。この場合、これはデータ ソースの「リンク」列のように聞こえます。どのようにしているのか正確にはわかりませんが、以下のスニペットは、HyperLink 列を GridView に追加する方法を示しています。提供したコードに基づいて、使用する列を手動で定義しているようには見えませんが、必要な動作が必要な場合は、必要なすべての列を手動で定義する必要がある場合があります。

    HyperLinkField titleLinkField = new HyperLinkField();
    titleLinkField.DataTextField = "Title";  //Column name providing hyperlink title
    titleLinkField.DataNavigateUrlFields = "Link";  //Column providing the URL to use.

    gridSearchResults.Columns.Add(titleLinkField);

交互の行スタイルを定義する限り、そのプロパティ内でプロパティを設定できます。各プロパティを個別に設定するか、使用する CSS クラスを定義できます。

    gridSearchResults.AlternatingRowStyle.CssClass = "myAlternatingClass";
    gridSearchResults.RowStyle.CssClass = "myRegularClass";
    // OR
    gridSearchResults.AlternatingRowStyle.ForeColor = Drawing.Color.Blue;
    gridSearchResults.RowStyle.ForeColor = Drawing.Color.Green;

編集: パオロ・テデスコが私を打ち負かしました。GridView で AutoGenerateColumns を False に指定する必要があります。

通常のフィールドについては、基本的に上記と同じものを使用する必要がありますが、HyperLinkField を使用する代わりに、BoundField を使用できます。

于 2013-05-30T14:05:06.273 に答える