2

これが私のコードです

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow) {
        // DataRow data = ((DataRowView)e.Row.DataItem).Row;
        string ToolTipString = Convert.ToString(e.Row.Cells[2].Text);
        e.Row.Cells[2].Attributes.Add("title", ToolTipString);
        Label MyLabel = (Label)e.Row.FindControl("MyLabel");

        if (ToolTipString.Length < 20) {
            MyLabel.Text = ToolTipString;
        }
        else {
            MyLabel.Text = String.Format("{0}...", ToolTipString.Substring(0, 17));
            MyLabel.ToolTip = ToolTipString;
        }
    }
}

しかし、Convert.ToString(e.Row.Cells[2].Text);ここでは常に「」が表示されます。私のコードに何か問題がありますか?

4

2 に答える 2

5

このコードを使用してください

var ToolTipString = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Column"));
于 2013-03-08T05:48:38.097 に答える
2

通常、この問題は、列がグリッドで非表示になっている場合に発生します。それを解決するための2つのステップ、

  1. Visible="false" を使用する代わりに、ItemStyle-CssClass="Column_Hide" のようにバインドされたフィールドに css クラスを使用します。

  2. cssファイルにColumn_Hideを作成し、

    .Column_Hide
     {
        display: none;
     }
    

うまくいけば、あなたの問題は解決されます

于 2013-11-20T22:42:54.023 に答える