VS2010 asp.net: захват значения невидимого столбца GridView - PullRequest
0 голосов
/ 28 апреля 2010

Как передать значение столбца GridView в код, не делая его видимым?В следующем коде я хотел бы захватить ContactID, не делая его видимым в GridView.

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataSourceID="SqlDataSource1" 
    OnRowCommand="_OnRowCommand"

    >
    <Columns>
        <asp:BoundField DataField="ContactID" HeaderText="ContactID" 
            SortExpression="ContactID" InsertVisible="False" ReadOnly="True" />


.....other columns in the grid....

        <asp:ButtonField ButtonType=Button CommandName="Remove" Text="Remove" />
    </Columns>
</asp:GridView>

Я хотел бы захватить ContactID следующим образом.Я не могу сделать это, не делая его видимым = true в GridView.

if (e.CommandName.Equals("Remove"))
{
    int index = Convert.ToInt32(e.CommandArgument);
    int ContactID = Convert.ToInt32(GridView1.Rows[index].Cells[0].Text.Trim());
}

Пожалуйста, помогите.

Спасибо ..

1 Ответ

1 голос
/ 28 апреля 2010

То, что вы хотите, и то, что делает ваш код, - это две разные вещи.

Я думаю, что вы ищете это:

String ContactID = e.Row.Cells(0).Text;

Однако я предлагаю другой способ:

Вы можете использовать CommandArgument на своей кнопке. Это означает, что вы передаете аргумент через саму кнопку. Вам не нужно будет получать аргумент от любого другого элемента управления. Для этого вам нужно сделать следующее:

    <asp:ButtonField ButtonType=Button CommandName="Remove" Text="Remove" CommandArgument='<%# Eval("ContactID") %>' />

И тогда ваш код выглядит так:

 if (e.CommandName.Equals("Remove"))
 {
     int ContactID = Convert.ToInt32(e.CommandArgument);
 }

Вот хороший пример GridView с CommandArguments .

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