Получить значения индекса столбца в виде сетки - PullRequest
0 голосов
/ 18 мая 2018

У меня есть gridview в asp.net, и в таблице у меня есть два столбца.Теперь я должен показывать значение индекса столбца строка за строкой при нажатии кнопки в форме предупреждения для полей dllDesc и txtBoxDesc.

<asp:GridView ID="gvCar" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns="False" DataKeyNames="LevelID" OnRowDataBound="gvCar_RowDataBound">
            <AlternatingRowStyle BackColor="White" />
            <Columns>
                <asp:TemplateField HeaderText="Car">
                    <ItemTemplate>
                        <asp:Label ID="Car" runat="server" Width="150px" Height="30px" Font-Names="Georgia" MyCustomAttr="foo" margin-Left="100px" Text='<%# Bind("CharName") %>'></asp:Label>


                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Description">
                    <ItemTemplate>

                         <asp:DropDownList ID="ddlDesc" Width="142px" Height="35px" Font-Names="Georgia" margin-Left="100px" runat="server">
                         </asp:DropDownList>

                        <asp:TextBox ID="txtBoxDesc" runat="server" Width="130px" Height="28px" Font-Names="Georgia" margin-Left="100px" Text=''></asp:TextBox>

                    </ItemTemplate>
                </asp:TemplateField>

            </Columns>

        </asp:GridView> 
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />

Мне удалось получить значение для строк (код ниже), но я могне могу найти способ показать это по столбцам.

protected void Button1_Click(object sender, EventArgs e)
{
    foreach (GridViewRow gvr in gvCar.Rows)
    {
        string PrimaryKey = gvCar.DataKeys[gvr.RowIndex].Values[0].ToString();
        MessageBox.Show(PrimaryKey);
    }
}

Может кто-нибудь помочь мне, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

просто свяжите это так в представлении сетки, больше ничего не нужно делать

 <asp:TemplateField HeaderText="No.">
         <ItemTemplate>
             <%# Container.DataItemIndex + 1 %>
           </ItemTemplate>
 </asp:TemplateField>

РЕДАКТИРОВАТЬ ОБНОВЛЕНИЕ 2

просто добавить в выбранный индекс Измененное событие

<asp:GridView ID="gvCar" runat="server" OnSelectedIndexChanged="gvCar_SelectedIndexChanged">

и в вашем файле cs

protected void gvCar_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
               string a  = gvCar.SelectedRow.Cells[0].Text; //Write here that cell index  of index  no             
            }
            catch (Exception ex)
            {
            }
        }

, если вы хотите сделать это с помощью команды строки, откройте ссылку ниже

Пример команды строки

, который будет работать для вас

0 голосов
/ 18 мая 2018

Вы просто перебираете столбцы и затем запрашиваете текст заголовка: `

 for (int i = 0; i < gvCar.Columns.Count; i++)
 {
     string columnHeader = gvCar.Columns[i].HeaderText;
 }

РЕДАКТИРОВАНИЕ ПОСЛЕ ОБРАТНОЙ СВЯЗИ:

Для таблиц данных, я думаю, этоработает так:

 for (int i = 0; i < dt.Columns.Count; i++)
 {
     int colIndex = dt.Columns[i].Ordinal;
 }

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...