Передача значения хранилища данных в качестве параметра OnRowCommand asp: ButtonField - PullRequest
0 голосов
/ 19 декабря 2011

Интересно, может ли кто-нибудь из вас помочь мне или направить меня в правильном направлении

Я использую asp: GridView для отображения некоторых данных, и я добавил ButtonField в качестве одного из столбцов. Я хочу передать значение одного из текстовых столбцов в функцию OnRowCommand и выполнить некоторые вычисления с это.

Мой GridView:

<asp:GridView ID="GridViewSchedule" runat="server" OnSorting="TaskGridView_Sorting" OnRowCommand="RowButtonClicked" AutoGenerateColumns="False" Font-Size="11px"
            CssClass="Grid" AllowSorting="True">
    <Columns>
         <asp:BoundField DataField="Date" HeaderText="Date" SortExpression="Date" />
                <asp:BoundField DataField="Name" HeaderText="Schedule Name" SortExpression="Name" />
         <asp:BoundField DataField="Message" HeaderText="Message Text" SortExpression="Message">
            <ItemStyle Font-Size="10px" />
         </asp:BoundField>
         <asp:ButtonField ButtonType="Button" CommandName="ViewDetails" Text="View" ControlStyle-CssClass="ActionButton" />
    </Columns>
</asp:GridView>

Значение, которое я хочу передать, не указано выше, но оно находится в хранилище, я не отображаю этот столбец.

Это функция, которую я вызываю из сетки

protected void RowButtonClicked(object sender, GridViewCommandEventArgs e)
{

}

Итак, я хочу знать, как я могу передать значение одного из столбцов, даже если мне нужно добавить этот столбец в сетку и просто установить для его видимости значение false?

1 Ответ

1 голос
/ 19 декабря 2011

В качестве альтернативы вы можете использовать DataKeyNames и событие SelectedIndexChanged GridView, чтобы получить нужные вам значения.Имена ключей данных будут сопоставляться с именами столбцов данных в вашем источнике данных.

<asp:GridView ID="GridViewSchedule" runat="server" DataKeyNames="ID,Date,Name" OnSorting="TaskGridView_Sorting"
        AutoGenerateColumns="False" Font-Size="11px" CssClass="Grid" 
        AllowSorting="True" 
        onselectedindexchanged="GridViewSchedule_SelectedIndexChanged">
        <Columns>
            <asp:BoundField DataField="Date" HeaderText="Date" SortExpression="Date" />
            <asp:BoundField DataField="Name" HeaderText="Schedule Name" SortExpression="Name" />
            <asp:BoundField DataField="Message" HeaderText="Message Text" SortExpression="Message">
                <ItemStyle Font-Size="10px" />
            </asp:BoundField>
            <asp:ButtonField ButtonType="Button" CommandName="ViewDetails" Text="View" ControlStyle-CssClass="ActionButton" />
        </Columns>
    </asp:GridView>

И затем обращаться к значению, как это:

 protected void GridViewSchedule_SelectedIndexChanged(object sender, EventArgs e)
 {
        int val = Convert.ToInt32(GridViewSchedule.DataKeys[GridViewSchedule.SelectedIndex].Values["ID"]);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...