2

I have a gridview and sqldatasource.

I want to remove the header text underline but only for some columns not all of them.

How can I do it?

4

2 に答える 2

2

を使用RowDataBoundして、の下線を削除 できますLinkButton

これにより、すべての列から下線が削除されます。HeaderText == "Date":

protected void Grid_RowDataBound(Object sender, GridViewRowEventArgs e)
{
    switch (e.Row.RowType)
    {
        case DataControlRowType.Header:
            var notDateFields = ((GridView)sender).Columns
                 .Cast<DataControlField>()
                 .Select((c, index) => new { Column = c, Index = index })
                 .Where(x => x.Column.HeaderText != "Date");
            foreach (var field in notDateFields)
            {
                LinkButton Link = (LinkButton)e.Row.Cells[field.Index].Controls[0];
                Link.Attributes.Add("style", "text-decoration:none;");
            }

            break;
    }
}

このアプローチでは、アンダースコアが削除されるようにスタイルを設定するだけですが、とにかく列を並べ替えることができます。

列が並べ替え可能にならないようにするだけの場合は、SortExpressionプロパティを削除するだけで済みます。

于 2012-06-21T20:57:33.777 に答える
2

と を設定autogeneratecolumns="false"allowsorting="true"ます。<columns>次に、子要素に表示するすべての列を次のように gridview に定義する必要があります。

<columns>
     <asp:boundfield datafield="Date" headertext="Date" sortexpression="Date"/>
     <asp:boundfield datafield="OtherColumn" headertext="Other Data"/>
</columns>

を使用するautogeneratecolumns="true"allowsorting="true"、デフォルトですべての列がソート可能になります。列を明示的に定義すると、プロパティが設定されていない列はsortexpressionソートできなくなります。

于 2012-06-21T21:01:30.927 に答える