Menu items are created from server side via the ASPxMenu Init event handler and depends on a row value.I created different item click events, on "Delete" item click appears alert window, on "Edit" item click appears popup window.
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>
<%@ Register Assembly="DevExpress.Web.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.Web.ASPxPopupControl" TagPrefix="dx" %>
<%@ Register Assembly="DevExpress.Web.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.Web.ASPxMenu" TagPrefix="dx" %>
<%@ Register Assembly="DevExpress.Web.ASPxGridView.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %>
<%@ Register assembly="DevExpress.Web.ASPxEditors.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxEditors" tagprefix="dx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<dx:ASPxGridView ID="ASPxGridView1" runat="server"
ClientInstanceName="ASPxGridView1" KeyFieldName="ID"
AutoGenerateColumns="False" ClientIDMode="AutoID" DataSourceID="SqlDataSource1">
<Columns>
<dx:GridViewDataTextColumn FieldName="ID" VisibleIndex="0" ReadOnly="True">
<EditFormSettings Visible="False" />
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="Status" VisibleIndex="1">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="Data" VisibleIndex="2">
</dx:GridViewDataTextColumn>
<dx:GridViewDataColumn VisibleIndex="20" Name="Action">
<DataItemTemplate>
<dx:ASPxMenu ID="ASPxMenu1" runat="server" ClientIDMode="AutoID"
oninit="ASPxMenu1_Init" BackColor="Transparent" >
<Items>
<dx:MenuItem Text="Menu" >
</dx:MenuItem>
</Items>
</dx:ASPxMenu>
</DataItemTemplate>
</dx:GridViewDataColumn>
</Columns>
</dx:ASPxGridView>
<dx:ASPxPopupControl ID="ASPxPopupControl1" runat="server" Modal="true" PopupHorizontalAlign="WindowCenter" PopupVerticalAlign="WindowCenter">
<ContentCollection>
<dx:PopupControlContentControl runat="server" SupportsDisabledAttribute="True">
<dx:ASPxLabel ID="ASPxLabel1" runat="server" ClientIDMode="AutoID"
Text="Custom edit window">
</dx:ASPxLabel>
</dx:PopupControlContentControl>
</ContentCollection>
</dx:ASPxPopupControl>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
SelectCommand="SELECT [ID], [Status], [Data] FROM [testTable]"></asp:SqlDataSource>
</div>
</form>
</body>
</html>
<%@ Register Assembly="DevExpress.Web.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.Web.ASPxPopupControl" TagPrefix="dx" %>
<%@ Register Assembly="DevExpress.Web.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.Web.ASPxMenu" TagPrefix="dx" %>
<%@ Register Assembly="DevExpress.Web.ASPxGridView.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %>
<%@ Register assembly="DevExpress.Web.ASPxEditors.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxEditors" tagprefix="dx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<dx:ASPxGridView ID="ASPxGridView1" runat="server"
ClientInstanceName="ASPxGridView1" KeyFieldName="ID"
AutoGenerateColumns="False" ClientIDMode="AutoID" DataSourceID="SqlDataSource1">
<Columns>
<dx:GridViewDataTextColumn FieldName="ID" VisibleIndex="0" ReadOnly="True">
<EditFormSettings Visible="False" />
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="Status" VisibleIndex="1">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="Data" VisibleIndex="2">
</dx:GridViewDataTextColumn>
<dx:GridViewDataColumn VisibleIndex="20" Name="Action">
<DataItemTemplate>
<dx:ASPxMenu ID="ASPxMenu1" runat="server" ClientIDMode="AutoID"
oninit="ASPxMenu1_Init" BackColor="Transparent" >
<Items>
<dx:MenuItem Text="Menu" >
</dx:MenuItem>
</Items>
</dx:ASPxMenu>
</DataItemTemplate>
</dx:GridViewDataColumn>
</Columns>
</dx:ASPxGridView>
<dx:ASPxPopupControl ID="ASPxPopupControl1" runat="server" Modal="true" PopupHorizontalAlign="WindowCenter" PopupVerticalAlign="WindowCenter">
<ContentCollection>
<dx:PopupControlContentControl runat="server" SupportsDisabledAttribute="True">
<dx:ASPxLabel ID="ASPxLabel1" runat="server" ClientIDMode="AutoID"
Text="Custom edit window">
</dx:ASPxLabel>
</dx:PopupControlContentControl>
</ContentCollection>
</dx:ASPxPopupControl>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
SelectCommand="SELECT [ID], [Status], [Data] FROM [testTable]"></asp:SqlDataSource>
</div>
</form>
</body>
</html>
Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using DevExpress.Web.ASPxMenu;
using DevExpress.Web.ASPxGridView;
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ASPxMenu1_Init(object sender, EventArgs e)
{
ASPxMenu ASPxMenu1 = sender as ASPxMenu;
GridViewDataItemTemplateContainer container = ASPxMenu1.NamingContainer as GridViewDataItemTemplateContainer;
string Status = ASPxGridView1.GetRowValues(Convert.ToInt32(container.VisibleIndex), "Status").ToString();
if (Status == "Sucsess")
{
ASPxMenu1.Items[0].Items.Add("Delete");
ASPxMenu1.Items[0].Items[0].Name = "deleteLink";
}
else if (Status == "Fault")
{
ASPxMenu1.Items[0].Items.Add("Edit");
ASPxMenu1.Items[0].Items[0].Name = "editLink";
ASPxMenu1.Items[0].Items[0].NavigateUrl = "javascript:void();";
}
ASPxMenu1.ClientSideEvents.ItemClick = "function (s, e) { if (e.item.name == 'deleteLink') { alert('Delete action'); } else if (e.item.name == 'editLink') { ASPxPopupControl1.Show(); } }";
}
}
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using DevExpress.Web.ASPxMenu;
using DevExpress.Web.ASPxGridView;
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ASPxMenu1_Init(object sender, EventArgs e)
{
ASPxMenu ASPxMenu1 = sender as ASPxMenu;
GridViewDataItemTemplateContainer container = ASPxMenu1.NamingContainer as GridViewDataItemTemplateContainer;
string Status = ASPxGridView1.GetRowValues(Convert.ToInt32(container.VisibleIndex), "Status").ToString();
if (Status == "Sucsess")
{
ASPxMenu1.Items[0].Items.Add("Delete");
ASPxMenu1.Items[0].Items[0].Name = "deleteLink";
}
else if (Status == "Fault")
{
ASPxMenu1.Items[0].Items.Add("Edit");
ASPxMenu1.Items[0].Items[0].Name = "editLink";
ASPxMenu1.Items[0].Items[0].NavigateUrl = "javascript:void();";
}
ASPxMenu1.ClientSideEvents.ItemClick = "function (s, e) { if (e.item.name == 'deleteLink') { alert('Delete action'); } else if (e.item.name == 'editLink') { ASPxPopupControl1.Show(); } }";
}
}
Комментариев нет:
Отправить комментарий