-1

グリッドビューを使用して、db テーブル データを表示しています。しかし、1000文字の「説明」という列があります。文字列全体をグリッドビューに結合したくありません。最初の 100 文字だけを gridview列にバインドするにはどうすればよいですか?

選択ボタンをクリックすると、選択した列の詳細をポップアップウィンドウに表示したい。現時点では、説明列のすべての文字を表示したいと考えています。

私はすでにポップアップウィンドウなどを作成しています。それでも、「説明列」の最初の100文字を取得してグリッドビューにバインドできませんでした。これどうやってするの ?そして、文字列全体をポップアップウィンドウに表示するにはどうすればよいですか?

すべての回答は大歓迎です。助けてください。

ありがとうございました

4

2 に答える 2

0

私は自分で解決策が好きです

100% 動作し、完全にテスト済み

protected void grdName_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (e.Row.Cells[8].Text.Length > 100)
                {
                    e.Row.Cells[8].Text = e.Row.Cells[8].Text.Substring(0, 12);
                }


            }
        }
于 2013-06-28T06:31:26.163 に答える
0

グリッドビューにバインドするエンティティがある場合は、次のことができます。

まず、新しいプロパティを追加します。

[NotMapped]
public string CutDescription
{
    get
    {
        if (Description.Length <= 1000)
        {
            return Description;
        }
        return Description.Substring(0, 1000) + "...";
    }
}

次に、これをグリッドビューにバインドできます。

<asp:BoundField DataField="CutDescription" HeaderText="Description" />

これは 1 つの方法にすぎません。それが役に立てば幸い。

編集: RowDatabound イベントを使用する別の方法:

protected void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
    var row = e.Row;
    if (row.RowType == DataControlRowType.DataRow)
    {
        // Just change the index of the cell 
        var description = row.Cells[1].Text;
        if (description.Length > 100)
        {
            row.Cells[1].Text = description.Substring(0, 100) + "...";
        }
    }
}
于 2013-06-27T10:24:33.023 に答える