Подтвердить что ты не робот

Как добавить класс CSS в BoundField, чтобы найти его с помощью jQuery?

Я хочу добавить имя класса в некоторые из моих BoundFields в элементе управления GridView; так что, как только GridView привязан к данным и отображен, я могу получить что-то вроде:

<td class="Tag1">Some data came from data source</td>

Целью такой работы является возможность найти все элементы, которые являются "Tag1" следующим образом:

var allTag1td = $('td.Tag1');

Итак, как я могу добавить этот класс в BoundField, чтобы он отображался таким образом?

4b9b3361

Ответ 2

Добавьте свойство ItemStyle в свое поле:

<asp:BoundField DataField="Count" HeaderText="Count">
    <ItemStyle CssClass="yourclass"></ItemStyle>
</asp:BoundField>

Ответ 3

Вы можете установить свойство ячейки строки CssClass в Tag1 при создании строки (RowCreated event).

Page.aspx:

<asp:GridView OnRowCreated="grid_RowCreated" AutoGenerateColumns="true" runat="server" ID="grid"></asp:GridView>

Файл с кодовым кодом, Page.aspx.cs:

protected void grid_RowCreated(object sender, GridViewRowEventArgs e) {
    foreach (TableCell cell in e.Row.Cells)
        cell.CssClass = "Tag1";
}

Код будет устанавливать атрибут class для каждого td в вашей таблице Tag1; разметка отображаемой страницы будет выглядеть так, как вы хотите:

<td class="Tag1"></td>
<td class="Tag1"></td>
...

Ответ 4

Вы можете преобразовать в TemplateField, затем использовать ярлык и добавить любой стиль, который вы хотите.

<asp:TemplateField HeaderText=""> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Eval("Field") %>' CssClass="YourStyle" /> </ItemTemplate> </asp:TemplateField>

ИЛИ

<asp:TemplateField HeaderText=""> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Eval("Field") %>' Style="line-height: 1.4" /> </ItemTemplate> </asp:TemplateField>

Это работает для меня.

Ответ 5

мой ответ

<asp:BoundField DataField="id" HeaderText="" SortExpression="id"> <ItemStyle Width="10%" CssClass="hide"/> <headerstyle CssClass="hide"> </headerstyle> </asp:BoundField>

Ответ 7

Обязательно установите свойство ItemStyle CssClass, а не одно из других. Я допустил ошибку, установив свойство ControlStyle CssClass, и только после того, как я прочитал этот пост, я осознал свою ошибку.

Ответ 8

Для добавления связанного поля в код позади (это VB, но аналогичный для С#):

bf = New BoundField()
bf.DataField = "FieldName"
bf.HeaderText = "Header"
bf.SortExpression = "FieldName(could be different)"
bf.ItemStyle.CssClass = "NoWrap"
MyGrid.Columns.Add(bf)

Если вы хотите, чтобы данные CssClass зависели от вас, вам понадобится шаблонное поле Eg:

tf = New WebControls.TemplateField()
tf.HeaderText = "Whatever"
tf.SortExpression = "Whatever"
tf.ItemTemplate = New MyItemTemplate("DataField", "CssDataField")
AssessmentGrid.Columns.Add(tf)

MyItemTemplate реализует ITemplate в папке App_Code. Например:

Imports Microsoft.VisualBasic

Public Class MyItemTemplate
    Implements System.Web.UI.ITemplate
    'Normally Template type would be in here but we are only do Item 
    '(no edit, delete or header etc)
    Dim DataField1 As String 'Displayed data
    Dim DataField2 As String 'CssClass

    Sub New(ByVal Field1 As String, ByVal Field2 As String)
        DataField1 = Field1
        DataField2 = Field2
    End Sub

    Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) _
            Implements System.Web.UI.ITemplate.InstantiateIn
        Dim ml As New Label()
        ml.ID = DataField1 
        ml.Text = ""
        ml.CssClass = ""
        AddHandler ml.DataBinding, New EventHandler(AddressOf Item_DataBinding)
        container.Controls.Add(l)
    End Sub

    Protected Sub Item_DataBinding(ByVal sender As Control, ByVal e As System.EventArgs)
        Dim bound_value_object As Object
        Dim data_item_container As IDataItemContainer = sender.NamingContainer
        Dim Parent As TableCell = sender.Parent
        Dim l As Label = sender
        bound_value_object = DataBinder.Eval(data_item_container.DataItem, DataField1)
        l.Text = bound_value_object.ToString
        bound_value_object = DataBinder.Eval(data_item_container.DataItem, DataField2)
        Parent.CssClass = bound_value_object.ToString
    End Sub
End Class

Вы можете применить CssClass к ярлыку direct, но исходный вопрос имел его в ячейке