Программно вставить элемент управления TextBox в GridView.FooterRow - PullRequest
1 голос
/ 29 января 2009

Вы можете изменить столбцы и ItemTemplate столбцов в GridView HeaderRow . Но то же самое невозможно на FooterRow , поскольку он доступен только для чтения.

Можно ли программным способом добавить элемент управления TextBox к FooterRow в элементе управления GridView ?


Примечание. Мне не нужно привязывать данные к добавляемым элементам управления.

Ответы [ 3 ]

1 голос
/ 29 января 2009

Возможно, я что-то упускаю, но вы не можете подключиться к событию RowDataBound и добавить свои элементы управления вот так?

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.Footer)
    {
        TextBox textBox = new TextBox();
        textBox.Text = "Hello";
        e.Row.Cells[0].Controls.Add(textBox);
    }
}
0 голосов
/ 29 января 2013

Попробуйте добавить элементы управления к gridview в событии gridview_RowCreated

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    {`enter code here`
        if (e.Row.RowType == DataControlRowType.Footer)
        {
            TextBox txt = new TextBox();
            txt.ID = "txt_Name";
            e.Row.Cells[0].Controls.Add(txt);


        }
0 голосов
/ 30 января 2009

Да, я попробовал это сам, и он отлично работает, вот полный код ...

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server"    OnRowDataBound="GridView1_RowDataBound"
            ShowFooter="True">
        </asp:GridView>
    </div>
    </form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        List<string> animals = new List<string>();
        animals.Add("Cat");
        animals.Add("Dog");
        animals.Add("Horse");

        GridView1.DataSource = animals;
        GridView1.DataBind();
    }

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType != DataControlRowType.Footer) return;
        TextBox textBox = new TextBox();
        e.Row.Cells[0].Controls.Add(textBox);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...