I'm trying to place a button on Grid
. All correct if I put an email by default. The question is that I want to place each of the rows that corresponds to it (there is already a column with that email).
In this case if it works:
<dx:ASPxGridView ID="ContactosGridView"
DataSourceID="sqlContactos"
ClientInstanceName="ContactosGridView"
EnableRowsCache="False"
runat="server"
KeyFieldName="IdContacto"
OnHtmlDataCellPrepared="GridView_HtmlDataCellPrepared">
<ClientSideEvents RowClick="function(s, e) { SMCVisitasClientesDetalleVisita_OpenDialogSeeContact(e); }"
CustomButtonClick="function(s, e) {
if(e.buttonID == 'SendEmail'){
window.location.href('mailto:[email protected]');
}
}" />
<Settings ShowGroupPanel="true" ShowFilterRow="true" />
<SettingsPager PageSize="20"></SettingsPager>
<SettingsBehavior ConfirmDelete="true" />
<Styles>
<AlternatingRow Enabled="true" />
</Styles>
<Columns>
</Columns>
</dx:ASPxGridView>
But at the moment I try to place an Eval, as I already have in other web applications, it knocks me down. Be in the mailto, in a console log, alert ...
window.location.href('mailto:<%#Eval("Email")%>');
What could be happening? Any idea how to fix it? I'm going crazy and it's what I have left to finish the project almost.
PS: the columns of the grid and the button are printed entirely from the server side.
Button:
private void AddCommandColumn()
{
GridViewCommandColumn commandColumn = new GridViewCommandColumn();
commandColumn.Name = DevExpressInfraestructure.V11.Core.Definitions.Grid.CommandColumnName;
commandColumn.ButtonType = ButtonType.Image;
commandColumn.ClearFilterButton.Visible = true;
commandColumn.ClearFilterButton.Image.Url = DevExpressInfraestructure.V11.Core.Definitions.Images.Cancel;
commandColumn.ClearFilterButton.Image.ToolTip = DevExpressTexts.Keys.ClearFilter.GetLiteral();
commandColumn.VisibleIndex = DevExpressInfraestructure.V11.Core.Definitions.Grid.CommandColumnIndex;
commandColumn.HeaderStyle.CssClass = "SMCGridCommandColumn";
this.ContactosGridView.Columns.Add(commandColumn);
this.SendEmailButton(commandColumn, ButtonsId.SendEmail, Resources.Keys.SendEmail.Get());
}
private void SendEmailButton(GridViewCommandColumn column, string id, string text)
{
GridViewCommandColumnCustomButton suscriberButton = new GridViewCommandColumnCustomButton();
//suscriberButton.Image.Url = DevExpressInfraestructure.V11.Core.Definitions.Images.SendEmail;
suscriberButton.Image.Url = "http://XXXX/Style%20Library/Images/send.png";
suscriberButton.ID = id;
suscriberButton.Text = text;
column.CustomButtons.Add(suscriberButton);
}
private void LoadGrid()
{
// Set grid view colums
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.NombreContacto, Resources.Keys.ContactoPrincipalFrm.Get().TrimEnd(':'), AutoFilterCondition.Contains));
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.CodigoCliente, Resources.Keys.CodigoCliente.Get().TrimEnd(':'), AutoFilterCondition.Contains));
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.NombreCliente, Resources.Keys.NombreCliente.Get().TrimEnd(':'), AutoFilterCondition.Contains));
if (this.ExportExcelMode)
{
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.Direccion, Resources.Keys.Direccion.Get().TrimEnd(':'), AutoFilterCondition.Contains));
}
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.CodigoPostalPoblacion, Resources.Keys.CodigoPostalPoblacion.Get().TrimEnd(':'), AutoFilterCondition.Contains));
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.Email, Resources.Keys.EMailFrm.Get().TrimEnd(':'), AutoFilterCondition.Contains));
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.Movil, Resources.Keys.MovilFrm.Get().TrimEnd(':'), AutoFilterCondition.Contains));
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.Telefono, Resources.Keys.TelefonoFrm.Get().TrimEnd(':'), AutoFilterCondition.Contains));
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.Departamento, Resources.Keys.DepartamentoFrm.Get().TrimEnd(':'), AutoFilterCondition.Contains));
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.Cargo, Resources.Keys.CargoFrm.Get().TrimEnd(':'), AutoFilterCondition.Contains));
if (this.ExportExcelMode)
{
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.Descripcion, Resources.Keys.DescripcionFrm.Get().TrimEnd(':'), AutoFilterCondition.Contains));
}
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.Relevancia, Resources.Keys.Relevancia.Get().TrimEnd(':'), AutoFilterCondition.Contains));
if (this.ExportExcelMode)
{
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.Observaciones, Resources.Keys.ObservacionesFrm.Get().TrimEnd(':'), AutoFilterCondition.Contains));
}
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.Acciones, Resources.Keys.AccionesMarketingFrm.Get().TrimEnd(':'), AutoFilterCondition.Contains));
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.Holon, Resources.Keys.Holon.Get().TrimEnd(':'), AutoFilterCondition.Contains));
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.Proyecto, Resources.Keys.proyecto.Get().TrimEnd(':'), AutoFilterCondition.Contains));
if (this.ExportExcelMode)
{
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.Segmento, Resources.Keys.Segmento.Get().TrimEnd(':'), AutoFilterCondition.Contains));
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.Subsegmento, Resources.Keys.SegmentoActividad.Get().TrimEnd(':'), AutoFilterCondition.Contains));
this.ContactosGridView.AddGridViewDataColumn(new GridField(Contacto.Columns.Responsable, Resources.Keys.AtResponsable.Get().TrimEnd(':'), AutoFilterCondition.Contains));
}
this.AddCommandColumn();
this.ContactosGridView.SetGrid(false, false, false);
}
And I already call the load grid in the page load