Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Выделение Строки в GridView

2.0K
15 ноября 2008 года
nevile
138 / / 05.01.2007
При нажатии на кнопку Редактирования, необходимо что бы переходил на другую страницу при этом кое что сохранив. Такое у меня реализовано на одной странице и все работает, а сделав это на другой по образу и подобию у меня перестало работать.

Я сделал это так:

основная страница:
Код:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:trainingConnectionString %>"> </asp:SqlDataSource>
       
    <asp:GridView ID="Data" runat="server" &#111;&#110;RowCreated="Data_RowCreate" &#111;&#110;SelectedIndexChanging="Data_SelectedIndexChanging" &#111;&#110;SelectedIndexChanged="Data_SelectedIndexChanged"
        CellPadding="4" DataSourceID="SqlDataSource1" ForeColor="#333333"
        GridLines="None" AutoGenerateColumns="False">
        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
        <Columns>
       
            <asp:BoundField DataField="id" ReadOnly="True" SortExpression="id" />
           
            <asp:TemplateField HeaderText="Название вопроса">
            <ItemTemplate>
                <asp:HyperLink Target="_popup" ID="quest" runat="server" />
            </ItemTemplate>
            </asp:TemplateField>
           
            <asp:CommandField ShowSelectButton="True" ButtonType="Link" SelectText="Добавить" />
           
        </Columns>
        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
        <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <EditRowStyle BackColor="#999999" />
        <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
    </asp:GridView>

кодовая страница:
Код:
protected void Page_Load(object sender, EventArgs e)
        {
            string type = (string)Session["ddl_text"];
            switch (Convert.ToInt32(type))
            {
                case 1:
                    {
                        SqlDataSource1.SelectCommand = "SELECT id, name FROM question WHERE category=1";
                        break;
                    }
            }
            SIC = true;
        }

        protected void Data_RowCreate(object sender, GridViewRowEventArgs e)
        {
            if (SIC)
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    string quest_str = (string)DataBinder.Eval(e.Row.DataItem, "name");

                    int id_int = (int)DataBinder.Eval(e.Row.DataItem, "id");

                    HyperLink name = (HyperLink)e.Row.FindControl("quest");
                    name.Text = quest_str;
                    name.NavigateUrl = "~/course/about_quest.aspx?id=" + id_int;
                }
            }
        }

        bool SIC;

        protected void Data_SelectedIndexChanging(object sender, EventArgs e)
        {
            SIC = false;
        }

        protected void Data_SelectedIndexChanged(object sender, EventArgs e)
        {
                string i = Data.SelectedDataKey.Value.ToString(); //*
                Response.Write(i);
        }


он выдает ошибку на строке отмеченной //* Data keys must be specified on GridView 'Data' before the selected data keys can be retrieved. Use the DataKeyNames property to specify data keys.
Перевод знаю ;), но что-то никаких догадок в чем может быть проблема.
Может кто-нить сможет помочь или сталкивался с таким?
2.0K
15 ноября 2008 года
nevile
138 / / 05.01.2007
Все нашел проблему, оказывается немного не по образу сделал в таблице не указал DataKeyNames.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог