Основы ASP.NET 2.0



         

События GridView - часть 3


Можно сделать так, чтобы стиль строк менялся при наведении курсора мыши:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.Attributes["onmouseover"] = "this.style.backgroundColor='#FFE4B5'"; e.Row.Attributes["onmouseout"] = "this.style.backgroundColor='#FFFFFF'"; } }

Наш GridView выводит числовые значения полей CategoryId и SupplierId. Но, конечно, пользователю нужны названия, и брать их приходится из других таблиц. Можно связать GridView и с представлением (View), но представления не поддерживают редактирование.

Установим свойство AutoGenerateEditButton в True и превратим столбец CategoryId в TemplateField, а также добавим второй источник данных:

<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" SelectCommand="SELECT [CategoryID], [CategoryName] FROM [Categories] ORDER BY [CategoryName]"> </asp:SqlDataSource>

Visual Studio 2005 сгенерировал шаблон, который предстоит изменить на такой:

<asp:TemplateField HeaderText="Категория" SortExpression="CategoryID"> <EditItemTemplate> <asp:DropDownList ID="CatDropDownList" runat="server" DataSourceID="SqlDataSource2" DataValueField="CategoryId" DataTextField="CategoryName" SelectedValue=<%# Bind("CategoryId") %>> </asp:DropDownList > </EditItemTemplate> <ItemTemplate> <asp:Label ID="CatLabel" runat="server" ></asp:Label> </ItemTemplate> </asp:TemplateField>




Содержание  Назад  Вперед