在网格视图中设置交替行样式+在c#中设置模板

时间:2013-05-30 13:17:15

标签: c# templates gridview css

我正在开发一个Web应用程序。我需要将一些值数据绑定到gridview,我成功地做了,但我有一些问题......

基本上一切都发生在代码中(c#)所以有直接页面我定义gridview等...

以下是代码:

        ResultTable searchResult=.... //Results

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

结果表包含以下表格:优先级,标题,日期和链接。

当我绑定所有内容时,我得到了一个很好的表,包含所有需要的数据,但是一切都是文本,但在我的情况下,我希望将Title作为链接来自结果表中列链接的'链接'是的,我也想重新格式化日期。

我该怎么做?

另一件事是我如何设置行样式和交替行样式,属性似乎只是GET,我该怎么设置呢?

我再说一遍,一切都应该在C#课堂上发生。

2 个答案:

答案 0 :(得分:1)

要根据需要格式化数据,您必须创建explcitly列:

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;

答案 1 :(得分:1)

您可以为GridView定义列。在您的情况下,我觉得您需要一个HyperLinkField类型的列。在该类中,您可以指定属性DataNavigateUrlFieldsDataTextField。 DataTextField允许您从包含显示文本的DataSource中指定字段的名称,在您的情况下,它听起来像是Title列。 DataNavigateUrlFields允许您指定用于填充URL的DataSource中的字段 - 在您的情况下,它听起来像是来自数据源的“链接”列。我不确定你是怎么做的,但下面的代码片段向你展示了如何在你的GridView中添加HyperLink列。根据您提供的代码,您看起来不像是手动定义要使用的列,但如果您需要所需的行为,则可能需要手动定义所需的所有列。

    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;

编辑:Paolo Tedesco击败了我,他确实有一点我失踪了。您需要在GridView上将AutoGenerateColumns指定为False。

对于常规字段,您应该使用与上面基本相同的内容,但不是使用HyperLinkField,而是使用BoundField。