Как перебрать все строки, столбцы и ячейки в GridView и установить его значение ASP.NET - PullRequest
0 голосов
/ 05 июня 2019

Я хочу перебрать все строки, столбцы и ячейки.а затем заполните каждый столбец списком. У меня есть список объектов сотрудников, у каждого сотрудника есть идентификатор и город.Я хочу заполнить gridview списком сотрудников.В первом столбце должен быть указан идентификатор всех сотрудников, во втором - имя каждого сотрудника, а в третьем столбце - город каждого сотрудника. Я не могу заставить его работать, любая помощь будет принята с благодарностью.

Вот как выглядит мой интерфейс.

       <asp:GridView ID="GridView1" AllowPaging="true"  ShowFooter="true" PageSize="5" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowEditing="GridView1_RowEditing"
            runat="server"  CellPadding="3"  GridLines="None" CssClass="mGrid" PagerStyle-CssClass="pgr" AlternatingRowStyle-CssClass="alt"
             OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowUpdating="GridView1_RowUpdating">
            <Columns>    
  <asp:TemplateField HeaderText="name">
                <ItemTemplate>
                    <asp:Label  ID="lblname" CssClass="gridTextbox" Text="" runat="server" />
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:TextBox CssClass="gridTextbox" ID="txtName" Text="" runat="server" />
                </EditItemTemplate>
                <FooterTemplate>
                    <asp:TextBox CssClass="gridTextbox" ID="txtNameFooter" runat="server" />
                </FooterTemplate>
            </asp:TemplateField>
             <asp:TemplateField HeaderText="city">
                <ItemTemplate>
                    <asp:Label  ID="lblcity" CssClass="gridTextbox" Text="" runat="server" />
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:TextBox CssClass="gridTextbox" ID="txtCity" Text="" runat="server" />
                </EditItemTemplate>
                <FooterTemplate>
                    <asp:TextBox CssClass="gridTextbox" ID="txtCityFooter" runat="server" />
                </FooterTemplate>
            </asp:TemplateField>          
                        <ItemTemplate>
                            <asp:ImageButton ImageUrl="~/Images/edit.png" runat="server" CommandName="Edit" ToolTip="Edit" Width="20px" Height="20px"/>
                            <asp:ImageButton ImageUrl="~/Images/delete.png" runat="server" CommandName="Delete" ToolTip="Delete" Width="20px" Height="20px"/>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:ImageButton ImageUrl="~/Images/save.png" runat="server" CommandName="Update" ToolTip="Update" Width="20px" Height="20px"/>
                            <asp:ImageButton ImageUrl="~/Images/cancel.png" runat="server" CommandName="Cancel" ToolTip="Cancel" Width="20px" Height="20px"/>
                        </EditItemTemplate>
                        <FooterTemplate>
                            <asp:ImageButton ImageUrl="~/Images/addnew.png" runat="server" CommandName="AddNew" ToolTip="Add New" Width="20px" Height="20px"/>
                        </FooterTemplate>
         </asp:TemplateField>
                </Columns>
       </asp:GridView> 

Вот как выглядит мой сервер.

  protected List<Emp> GetEmpList()
        {
            List<Emp> lEmp = new List<Emp>();
            Emp oemp = new Emp(1234, "Upendra", "Noida");
            lEmp.Add(oemp);
            oemp = new Emp(1234, "Upendra", "Noida");
            lEmp.Add(oemp);
            oemp = new Emp(1374, "Vishal", "Noida");
            lEmp.Add(oemp);
            oemp = new Emp(1934, "Rahul", "Noida");
            lEmp.Add(oemp);

            return lEmp;
        }

        protected void BindGridList()
        {    
            for (int i = 0; i < GridView1.Columns.Count - 1; i++)
            {
                foreach (GridViewRow row in GridView1.Rows)
                {
                    row.Cells[i].Text = GetEmpList()[i].ID.ToString();
                }    
            }
        }


    }
    public class Emp
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string City { get; set; }
        public Emp(int id, string name, string city)
        {
            this.ID = id;
            this.Name = name;
            this.City = city;
        }
  }

1 Ответ

0 голосов
/ 05 июня 2019

Я нашел решение, но оно не работает на следующей странице.

    protected void BindGridList()
    {
        for (int i = 0; i < GridView1.Columns.Count - 1; i++)
        {
               foreach (GridViewRow row in GridView1.Rows)
                {
                if (i == 0)
                {
                    row.Cells[i].Text = GetEmpList()[row.RowIndex].ID.ToString();
                }
                else if (i == 1)
                {
                    row.Cells[i].Text = GetEmpList()[row.RowIndex].Name.ToString();
                }
                //....
             }
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...