изменить расположение столбца шаблона поля в gridview - PullRequest
1 голос
/ 20 марта 2012

у меня есть и вид сетки, в котором я устанавливаю поле шаблона.Кроме того, я устанавливаю источник данных динамически в коде позади.Теперь поле шаблона отображается как первый столбец, и я хочу переместить его на 5, а также отключить другой столбец.как мне это сделать ?

</p> <pre><code> <asp:GridView ID="gv_DisAlarms" runat="server" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2" PageSize="15" AllowSorting="True" OnSorting="dataGrid_Sorting" EnableModelValidation="True" AutoGenerateColumns="true"> <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" /> <Columns> <asp:TemplateField HeaderText="Username" HeaderStyle-HorizontalAlign="Left" > <ItemTemplate> <asp:HyperLink ID="hl_mailto" runat="server" Text='<%# Bind("Username") %>' NavigateUrl='<%# "mailto:" + Eval("Username") + "?subject=Disabled Alarms&body=Dear " + Eval("Username") + ".%0AIn " + Eval("LastEditDate") + " you put alarm " + Eval("PointID") + " in disable.%0APlease clarify the reason and when it will be enabled.%0AThanks." %>' /> </ItemTemplate> </asp:TemplateField> </Columns> <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" /> <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" /> </asp:GridView>

Ответы [ 3 ]

1 голос
/ 28 апреля 2012
    Protected Sub gvEdit_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvEdit.RowCreated
    Dim row As GridViewRow = e.Row
    Dim columns As New List(Of TableCell)()

    For Each column As DataControlField In gvEdit.Columns
        'Get the first Cell /Column
        Dim cell As TableCell = row.Cells(1)
        ' Then Remove it after
        row.Cells.Remove(cell)
        'And Add it to the List Collections
        columns.Add(cell)
    Next

    ' Add cells
    row.Cells.AddRange(columns.ToArray())

End Sub
0 голосов
/ 20 марта 2012

Попробуйте это:

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
        {
        GridViewRow row = e.Row;
        List<TableCell> columns = new List<TableCell>();
        foreach (DataControlField column in GridView1.Columns)
        {
            TableCell cell = row.Cells[0];
            row.Cells.Remove(cell);
            columns.Add(cell);
        }
        row.Cells.AddRange(columns.ToArray());
        }
0 голосов
/ 20 марта 2012

Добавьте 4 пустых поля шаблона перед именем пользователя и установите их уровень отключенным: отключено с помощью свойства CssClass тега ItemStyle внутри тега TemplateField.

            <Columns> 
            <asp:TemplateField HeaderText="Username" HeaderStyle-HorizontalAlign="Left" >
                <ItemStyle CssClass="colDisable" />
                <ItemTemplate>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Username" HeaderStyle-HorizontalAlign="Left" >
                <ItemStyle CssClass="colDisable" />
                <ItemTemplate>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Username" HeaderStyle-HorizontalAlign="Left" >
                <ItemStyle CssClass="colDisable" />
                <ItemTemplate>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Username" HeaderStyle-HorizontalAlign="Left" >
                <ItemStyle CssClass="colDisable" />
                <ItemTemplate>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
...