criando uma janela modal com ajax.
estou usando o VS.2008 com SP1, ele já vem com ajax instalado né?
estou fazendo da seguinte maneira.
<asp:LinkButton ID="lnkEdite" runat="server" onclick="LinkButton1_Click">Editar</asp:LinkButton>
<aspanel ID="Panel1" runat="server" CssClass="modalPopup" Style="display: none" width="233px">
<p>Você deseja continuar?</p>
<br />
<div align="center">
<asp:Button ID="OkButton" runat="server" Text="OK" CommandName="Delete"
OnClick="OkButton_Click" />
<asp:Button ID="CancelButton" runat="server" Text="Cancel"
onclick="CancelButton_Click" />
</div>
</aspanel>
<ajaxtoolkit:modalpopupextender ID="ModalPopupExtender1" runat="server"
TargetControlID="lnkEdite"
PopupControlID="Panel1"
BackgroundCssClass="manage"
DropShadow="true"
OkControlID="OkButton"
OnOkScript="onOk()"
CancelControlID="CancelButton"
PopupDragHandleControlID="Panel3" />
mais está ocorrendo o seguinte erro:
Error 1 Unknown server tag 'ajaxtoolkit:modalpopupextender'.
Lorena Menelli
Mais Respostas
Luiz Maia
14/05/2009
Lorena Menelli
14/05/2009
Mais a que eu adicionei não aparece, tmb existe um monte de pasta numerada. Tá muito estralho, o disco v de imagem.
-----------------------------------------------------------------------------------------------------------------------------------------------
voltando ao erro ModalPopExtender
Erro Creating Control: ModalPopupExtender1
This control connot be displayed because its TagPrefix is not registred in the Web Form.
Lorena Menelli
14/05/2009
Exception Details: System.InvalidOperationException: The TargetControlID of 'ConfirmButtonExtender1' is not valid. The value cannot be null or empty.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[InvalidOperationException: The TargetControlID of 'ConfirmButtonExtender1' is not valid. The value cannot be null or empty.] System.Web.UI.ExtenderControl.RegisterWithScriptManager() +326661 System.Web.UI.ExtenderControl.OnPreRender(EventArgs e) +19 AjaxControlToolkit.ExtenderControlBase.OnPreRender(EventArgs e) +32 System.Web.UI.Control.PreRenderRecursiveInternal() +80 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842
Version Information: Microsoft .NET Framework Version:2.0.50727.3053; ASP.NET Version:2.0.50727.3053
Luiz Maia
14/05/2009
Lorena Menelli
14/05/2009
Lorena Menelli
14/05/2009
Panas isso, mais não está funcionando, instalei o AjaxControlToolkit.dll o ASPAJAXExtSetup e ASPNETAJAXVS2008.
mais não aparece a propiedade ConfirmButtonExtender.
<cc1:ConfirmButtonExtender ID="ConfirmButtonExtender1" runat="server"
BehaviorID="btnEditar" TargetControlID="Button1">
</cc1:ConfirmButtonExtender>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" />
Server Error in '/Hoffmann1' Application. The resource cannot be found. Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
Requested URL: /Hoffmann1/Manage/Categorias/Default2.aspx
Version Information: Microsoft .NET Framework Version:2.0.50727.3053; ASP.NET Version:2.0.50727.3053
Luiz Maia
14/05/2009
Lorena Menelli
14/05/2009
Lorena Menelli
14/05/2009
olha o meu codigo.
<asp:GridView ID="grdCategoris" runat="server" AutoGenerateColumns="False"
BackColor="White" BorderColor="#666666" BorderStyle="Solid" BorderWidth="1px"
CellPadding="3" DataSourceID="dsCategories"
GridLines="Vertical" Height="160px"
onselectedindexchanged="g_SelectedIndexChanged" Width="283px"
AlternatingRowStyle-BorderColor="#666666" HorizontalAlign="Center">
<RowStyle BackColor="#EEEEEE" ForeColor="Black" BorderColor="#666666"
BorderStyle="Solid" />
<EmptyDataRowStyle BorderStyle="Solid" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" Text="Button" />
/
<asp:LinkButton ID="lnkExcluir" runat="server" CommandName="Delete"
onclick="LinkButton2_Click">Excluír</asp:LinkButton>
<cc1:ConfirmButtonExtender ID="ConfirmButtonExtender2" runat="server"
BehaviorID="nkExcluir" TargetControlID="lnkExcluir" ConfirmText="Tem certeza que deseja excluír essa categoria?">
</cc1:ConfirmButtonExtender>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Title" HeaderText="Título" SortExpression="Title" />
</Columns>
<FooterStyle BackColor="#848484" ForeColor="Black" BorderStyle="Solid" />
<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center"
BorderWidth="1" BorderColor="#333333" Font-Size="11" BorderStyle="Solid" />
<SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White"
BorderColor="#666666" BorderStyle="Solid" />
<HeaderStyle BackColor="#FF9900" Font-Bold="True" ForeColor="White"
BorderStyle="None" BorderColor="#666666" BorderWidth="1" Font-Size="Small"
Font-Names="Tahoma" />
<EditRowStyle BorderStyle="Solid" />
<AlternatingRowStyle BackColor="#DCDCDC" BorderColor="#666666"
BorderStyle="Solid" />
</asp:GridView>
Luiz Maia
14/05/2009
Lorena Menelli
14/05/2009
Eu quero que todas as linhas do meu Grid, que contenhão o botão excluir esteja associado um ConfirmButtonExtender. Até agora só está funcionando na primeira linha do Grid.
O projeto tem uma classe chamada category que contem os metodos de select, update, exluir etc...
Nesse caso o código que vc me mandou devou colocar dentro da classe.
protected void ProductsGridView_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == “Modify”) //não estou entendendo nada. { Product record = SelectRecord(Convert.ToInt32(e.CommandArgument)); ProductId.Text = record.ProductID.ToString(); // nem isso! ProductName.Text = record.ProductName.ToString(); UnitsInStock.Text = record.UnitsInStock.Value.ToString(); UnitPrice.Text = record.UnitPrice.Value.ToString(); ModalPopupExtender mpe = up1.ContentTemplateContainer.FindControl(“mpe”) as ModalPopupExtender; mpe.Show(); //nossa, tô boiando... } }
<asp:ObjectDataSource ID="dsCategories" runat="server" DeleteMethod="DeleteCat"
InsertMethod="Insert" OldValuesParameterFormatString="original_"
SelectMethod="SelectCategory" TypeName="DevMedia.ECommerce.Category">
<DeleteParameters>
<asp:Parameter Name="CategoryId" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="title" Type="String" />
</InsertParameters>
</asp:ObjectDataSource>
da uma olhada no projeto:
https://www.devmedia.com.br/imagens/discovirtual/211069/Hoffmann1-3.rar
Lorena Menelli
14/05/2009
:-)
Lorena Menelli
14/05/2009
Pelo que estava vendo aqui, o que eu consegui fazer é apenas abrir uma janela de confirmação no java script.
Na verdade esse assunto é antigo eu eu já havia aberto um post para tentar resolver essa questão da Janela Modal.
Estou fazendo o curso "Curso Crie uma loja virtual completa com Visual Studio e ASP.NET" de FABIO GALANTE MANS.
O meu problema é que ele usa uma classe chamada OpenWebWindows que complica demais as coisa. Conforme ele mesmo disse, quando ele fez os videos dessa video aula não existia os controles ajax toolkit, devido isso estou com muita duvida na hora de criar a janela moda, que é explicada no video part VIII:
link do video:
https://www.devmedia.com.br/articles/viewcomp.asp?comp=4112
Até agora eu consegui fazer a janela modal funcionar usando ModalPopup, do toolkit
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/ModalPopup/ModalPopup.aspx
Porém usando o TargetControlID com o LinkButton1 fora do TemplateField. Como mostrado abaixo.
O que estou precisando é usar o TargetControlID com o LinkButton1 que está dentro do me TemplateField.
Como posso fazer isso??
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lbnEdite" runat="server" CommandName="Select">Edite</asp:LinkButton>
/
<asp:LinkButton ID="lnkExcluir" runat="server" CommandName="Delete"
onclick="LinkButton2_Click"
onclientclick="return confirm('Tem certeza que deseja excluír essa categoria? ATENÇÃO: Todos os dados serão perdidos. ')">Excluír</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
------------------------------------------------------------------------------------------------------------------------------------------------
Assim funciona.
<asp:LinkButton ID="LinkButton1" runat="server" Text="Abrir"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" Text="Fechar"></asp:LinkButton>
<asp:Panel ID="PnUp" runat="server" Width="197px">
<asp:Panel ID="PnTitulo" runat="server" Height="25px" style="color: #FFFFCC" Width="196px">
<div class="back">
<table style="width:196px; height: 7px;">
<tr>
<td>
lindinha </td>
</tr>
</table>
</div>
</asp:Panel>
<div class="back">
<asp:FormView ID="PnUpload" runat="server" DataSourceID="dsCategoriesUpDate"
DefaultMode="Edit" Height="126px" Width="152px">
<EditItemTemplate>
Title:
<asp:TextBox ID="txtTitle" runat="server" Text='<%# Bind("Title") %>' />
<br />
<asp:Button ID="UpdateButton" runat="server" CausesValidation="True"
CommandName="Update" Text="Update" />
<asp:Button ID="UpdateCancelButton" runat="server"
CausesValidation="False" CommandName="Cancel" Text="Cancel" />
<br />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"></asp:RequiredFieldValidator>
</EditItemTemplate></asp:FormView>
</div>
</asp:Panel>
<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="LinkButton1" CancelControlID="LinkButton2" PopupControlID="PnUp" PopupDragHandleControlID="PnTitulo" RepositionMode="RepositionOnWindowResizeAndScroll" OnOkScript="onOk()" Drag="True" DropShadow="True" X="150" Y="150">
</cc1:ModalPopupExtender>
Lorena Menelli
14/05/2009
https://www.devmedia.com.br/imagens/discovirtual/211069/Hoffmann1-4.rar
Fabio Mans
14/05/2009
<asp:GridView ID="GvwGrupoCategoria" runat="server" AutoGenerateColumns="False" DataKeyNames="GrupoCategoriaID"
OnRowCommand="GvwGrupoCategoria_RowCommand" OnRowCreated="GvwGrupoCategoria_RowCreated"
OnRowDataBound="GvwGrupoCategoria_RowDataBound">
<Columns>
<asp:ButtonField ButtonType="Image" HeaderImageUrl="~/Images/arrow-right_cinza.gif"
ImageUrl="~/Images/arrow-right_cinza.gif" CommandName="Selecao" />
<asp:BoundField DataField="GrupoCategoria" HeaderText="Grupo Categoria" >
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:TemplateField HeaderText="Tipo">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("TextoTipo") %>'></asp:Label>
<asp:HiddenField ID="HdfTipo" runat="server" Value='<%# Eval("Tipo") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField ButtonType="Image" CommandName="Excluir" ImageUrl="~/Images/excluir.png"
Text="Excluir categoria">
<ItemStyle HorizontalAlign="Center" />
</asp:ButtonField>
</Columns>
</asp:GridView>
Em seguida no RowCommand no Evento RowCommand voce exibe o Modal
protected void GvwGrupoCategoria_RowCommand(object sender, GridViewCommandEventArgs e)
{
int categoria = Convert.ToInt32(GvwGrupoCategoria.DataKeys[Convert.ToInt32(e.CommandArgument)][0]);
if (e.CommandName == "Selecao")
{
string idGrupo =
Convert.ToInt32(GvwGrupoCategoria.DataKeys[Convert.ToInt32(e.CommandArgument)][0]).ToString();
HfdAlterar.Value = idGrupo;
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = GvwGrupoCategoria.Rows[index];
TxtAlterarDescricao.Text = Limpar(row.Cells[1].Text);
HiddenField hdfTipoGrid = (HiddenField)GvwGrupoCategoria.Rows[index].FindControl("HdfTipo");
RbTipoAlteracao.SelectedValue = hdfTipoGrid.Value.Equals("C") ? "C" : "D";
ModalAlterar.Show();
}
}
Lorena Menelli
14/05/2009
No curso vc está trabalhando com ObjectDataSource, da uma olhada no projeto que eu enviei para o disco.
https://www.devmedia.com.br/imagens/discovirtual/211069/Hoffmann1-4.rar
Fabio Mans
14/05/2009
Veja no exemplo como colocar um Button e quando clicar nele abrir o Modal, está em negrito o que você precisar fazer.
Fabio
Lorena Menelli
14/05/2009
<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
TargetControlID="????????" CancelControlID="btnFechar"
PopupControlID="PnUp" PopupDragHandleControlID="PnTitulo"
RepositionMode="RepositionOnWindowResize"
OnOkScript="onOk()" X="310"
Y="145" Enabled="True" Drag="True" DropShadow="True">
</cc1:ModalPopupExtender>
Outra coisa, depois que tiver funcionando, tem como abrir um FormView dentor da ModalPopupExtender?
Pq eu tava tentando, com um botão fora do grid, e apenas quando eu uso formView que a jModalPopupExtender não abre. Pq no seu exemplo, vc usa formView.
Lorena Menelli
14/05/2009
Analize a página Phones.aspx e veja que tem um Grid e mais em baixo tem um ModalPopupExtender com o TargetControlID="btnHiddenPhone" e fora do Grid tem um Button ID="btnHiddenPhone" , mais quando clica em cima do ImageButton com ID="btnEdit" o que abre é a janela modal.
Aqui está o projeto por completo:
https://www.devmedia.com.br/imagens/discovirtual/211069/GridModalPopups2.zip
----------------------------------------------------------------------------------------------------------------------
<asp:GridView ID="grdPhone" runat="server" AutoGenerateColumns="False" DataSourceID="dsPhoneXml" AllowSorting="True" OnRowDataBound="editGrid_RowDataBound" Caption="Phones">
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:ImageButton ID="btnEdit" runat="server" SkinID="GridEditButton" OnClick="btnEditPhone_Click" CausesValidation="false" />
<asp:ImageButton ID="btnDelete" runat="server" SkinID="GridDeleteButton" OnClick="btnDeletePhone_Click" OnClientClick="javascript:return confirm('Are you sure you want to delete this row?');" CausesValidation="false" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="PersonPhoneID" HeaderText="PersonPhoneID" SortExpression="PersonPhoneID" />
<asp:BoundField DataField="PersonID" HeaderText="PersonID" SortExpression="PersonID" />
<asp:BoundField DataField="PhoneNumber" HeaderText="PhoneNumber" SortExpression="PhoneNumber" />
<asp:BoundField DataField="Extension" HeaderText="Extension" SortExpression="Extension" />
</Columns>
</asp:GridView>
<asp:Button ID="btnHiddenPhone" runat="Server" Style="display: none" />
<ajaxToolKit:ModalPopupExtender ID="mpePhone" runat="server" TargetControlID="btnHiddenPhone" PopupControlID="pnlPhone" CancelControlID="btnCancelPhone" BackgroundCssClass="modalBackground" PopupDragHandleControlID="PhoneCaption" Drag="true">
</ajaxToolKit:ModalPopupExtender>
Gostaria de entender isso.
Lorena Menelli
14/05/2009
Um FormView pode abrir em uma janala modal?
Lorena Menelli
14/05/2009
Fabio Mans
14/05/2009
<asp:ButtonField ButtonType="Image" HeaderImageUrl="~/Images/arrow-right_cinza.gif"
ImageUrl="~/Images/arrow-right_cinza.gif" CommandName="Selecao" />
Lorena Menelli
14/05/2009
protected void LinkButton2_Click(object sender, ImageClickEventArgs e) // isso está no ImageButton do TemplateField
{
ModalPopupExtender1.Show();
}
Lorena Menelli
14/05/2009
olha como estou fazendo
protected void grdCategoris_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Edit")
{
ModalPopupExtender1.Show();
}
}
Fabio Mans
14/05/2009
btnIndicar.Attributes.Add("onclick", "abrePopup(" + IdProduto.ToString() + ",'" + drProdutos(0).NomeProduto.ToString() + "'); return false;") t.Attributes.Add("onclick",
String.Format(
"PopUp('Detalhes.aspx?IdDoc=','Documento','270','270','no');return false;",
(((DataRowView) e.Item.DataItem)["CAMINHO"])));
Lorena Menelli
14/05/2009
que evento click? vc mesmo falow para eu usar ButtonField.
Não sei programar direito, por favar, especifique melhor. esse é o primiro curos de aspx que faço
estou usando RowCommand, olha aí...
.. se eu colocar um return aí vai dar uma erro.
meu codigo atual...
protected void grdCategoris_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Edit")
{
ModalPopupExtender1.Show();
}
}
Fabio Mans
14/05/2009
Lorena Menelli
14/05/2009
<%@ Page Title="" Language="C#" MasterPageFile="~/Manage/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Manage_Categorias_Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<%@ Register assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" namespace="System.Web.UI" tagprefix="asp" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<style type="text/css">
.back
{
height: 116px;
}
.style1
{
width: 21px;
}
.style2
{
width: 124px;
}
.style3
{
width: 71px;
}
.categories2
{
height: 219px;
width: 435px;
}
.style4
{
width: 726px;
}
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
<div class="manage">
<div class="categories">
<div class="categories2">
<asp:GridView ID="grdCategoris" runat="server"
AlternatingRowStyle-BorderColor="#666666" AutoGenerateColumns="False"
BackColor="White" BorderColor="#666666" BorderStyle="Solid" BorderWidth="1px"
CellPadding="3" DataKeyNames="CategoryID" DataSourceID="dsCategories"
GridLines="Vertical" Height="72px" HorizontalAlign="Center"
onselectedindexchanged="Button1_Click"
style="margin-right: 0px; margin-bottom: 0px;" Width="280px"
onrowcommand="grdCategoris_RowCommand">
<RowStyle BackColor="#EEEEEE" BorderColor="#666666" BorderStyle="Solid"
ForeColor="Black" />
<EmptyDataRowStyle BorderStyle="Solid" />
<Columns>
<asp:ButtonField ButtonType="Image" ImageUrl="../../images/btn_edit.gif"
CommandName="Edit" Text="Editar Categoria" />
<asp:ButtonField ButtonType="Image" ImageUrl="../../images/btn_delete.gif"
CommandName="Delete" FooterText="Excluír" Text="Excluír Cagoria"/>
<asp:BoundField DataField="Title" HeaderText="Categorias"
SortExpression="Title" />
</Columns>
<FooterStyle BackColor="#848484" BorderStyle="Solid" ForeColor="Black" />
<PagerStyle BackColor="#999999" BorderColor="#333333" BorderStyle="Solid"
BorderWidth="1" Font-Size="11" ForeColor="Black" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#008A8C" BorderColor="#666666" BorderStyle="Solid"
Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#FF9900" BorderColor="#666666" BorderStyle="None"
BorderWidth="1" Font-Bold="True" Font-Names="Tahoma" Font-Size="Small"
ForeColor="White" />
<EditRowStyle BorderStyle="Solid" />
<AlternatingRowStyle BackColor="#DCDCDC" BorderColor="#666666"
BorderStyle="Solid" />
</asp:GridView>
<asp:ObjectDataSource ID="dsCategoriesUpDate" runat="server"
SelectMethod="SelectById"
TypeName="DevMedia.ECommerce.Category" UpdateMethod="Update"
onselecting="dsCategoryUpdate_Selecting">
<UpdateParameters>
<asp:ControlParameter ControlID="grdCategoris" Name="CategoryId" />
</UpdateParameters>
<SelectParameters>
<asp:ControlParameter ControlID="grdCategoris" Name="CategoryId"
PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
<br />
</div>
<div>
</div>
<asp:LinkButton ID="LinkButton1" runat="server" Text="Abrir"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" Text="Fechar"></asp:LinkButton>
<asp:Panel ID="PnUp" runat="server" Width="241px"
Height="133px">
<asp:Panel ID="PnTitulo" runat="server" Height="122px" Width="232px">
<table class="back" border="0" cellpadding="0" cellspacing="0"
style="width: 227px">
<tr>
<td class="style1">
</td>
<td class="style2">
</td>
<td class="style3">
</td>
</tr>
<tr>
<td class="style1">
</td>
<td class="style2">
</td>
<td class="style3">
</td>
</tr>
<tr>
<td class="style1">
</td>
<td class="style2">
<asp:Button ID="btnEnviar" runat="server" Text="Enviar" />
<asp:Button ID="btnFechar" runat="server" Text="Fechar" />
</td>
<td class="style3">
</td>
</tr>
<tr>
<td class="style1">
</td>
<td class="style2">
</td>
<td class="style3">
</td>
</tr>
</table>
</asp:Panel>
</asp:Panel>
<asp:ObjectDataSource ID="dsCategories" runat="server" DeleteMethod="DeleteCat"
InsertMethod="Insert"
SelectMethod="SelectCategory" TypeName="DevMedia.ECommerce.Category">
<DeleteParameters>
<asp:Parameter Name="CategoryId" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="title" Type="String" />
</InsertParameters>
</asp:ObjectDataSource>
<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
TargetControlID="LinkButton1" CancelControlID="btnFechar"
PopupControlID="PnUp" PopupDragHandleControlID="PnTitulo"
RepositionMode="RepositionOnWindowResize"
OnOkScript="onOk()" X="310"
Y="145" Enabled="True" Drag="True"
BackgroundCssClass="modalBackground" >
</cc1:ModalPopupExtender>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<br />
<br />
<br />
</div>
</div>
</asp:Content>
Rowcommand...
protected void grdCategoris_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Edit")
{
ModalPopupExtender1.Show();
}
}
Fabio Mans
14/05/2009
onrowcommand="grdCategoris_RowCommand"
Lorena Menelli
14/05/2009
Fabio Mans
14/05/2009
http://www.howtocode.net/web-development/asp-net/gridview-with-a-single-modalpopupextender-panel-for-row-editing
No link acima abaixe os fontes abra no Visual Studio.
Link para baixar o projeto.
http://www.codeproject.com/KB/aspnet/GridView-ModalPopupExtend/GridModalPopups2.zip
Qualquer dúvida pergunte.
Lorena Menelli
14/05/2009
Lorena Menelli
14/05/2009
Aqui está o GridWiew da página Phone.aspx....
<asp:GridView ID="grdPhone" runat="server" AutoGenerateColumns="False" DataSourceID="dsPhoneXml" AllowSorting="True" OnRowDataBound="editGrid_RowDataBound" Caption="Phones">
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:ImageButton ID="btnEdit" runat="server" SkinID="GridEditButton" OnClick="btnEditPhone_Click" CausesValidation="false" />
<asp:ImageButton ID="btnDelete" runat="server" SkinID="GridDeleteButton" OnClick="btnDeletePhone_Click" OnClientClick="javascript:return confirm('Are you sure you want to delete this row?');" CausesValidation="false" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="PersonPhoneID" HeaderText="PersonPhoneID" SortExpression="PersonPhoneID" />
<asp:BoundField DataField="PersonID" HeaderText="PersonID" SortExpression="PersonID" />
<asp:BoundField DataField="PhoneNumber" HeaderText="PhoneNumber" SortExpression="PhoneNumber" />
<asp:BoundField DataField="Extension" HeaderText="Extension" SortExpression="Extension" />
</Columns>
</asp:GridView>
Tudo bem até aí, existe dois imageButton, com ID's = "btnEdit" e "btnDelete". Até aqui OK. mas......
olha o modalPopupExtender....
<!--cheesy button for the modal popups target control-->
<asp:Button ID="btnHiddenPhone" runat="Server" Style="display: none" />
<ajaxToolKit:ModalPopupExtender ID="mpePhone" runat="server" TargetControlID="btnHiddenPhone" PopupControlID="pnlPhone" CancelControlID="btnCancelPhone" BackgroundCssClass="modalBackground" PopupDragHandleControlID="PhoneCaption" Drag="true">
</ajaxToolKit:ModalPopupExtender>
tá vendo o TargetControlID?? ele chama o ID do botão logo acima dele.
esse button ID="btnHiddenPhone" é um tipo de botão alvo, não acho ele dentro da página!
Fabio Mans
14/05/2009
<asp:Button ID="btnHiddenPhone" runat="Server" Style="display: none" />
Outro exemplo, veja se ajuda.
Com dois Modal, um para alterar outro para incluir.
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<br />
<br />
<br />
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%">
<tr>
<td align="center">
<div id="Help">
<h3>
Categoria</h3>
</div>
<asp:GridView ID="GvwCategoria" runat="server" AutoGenerateColumns="False" DataKeyNames="CategoriaID"
OnRowCommand="GvwCategoria_RowCommand" OnRowCreated="GvwCategoria_RowCreated"
OnRowDataBound="GvwCategoria_RowDataBound">
<Columns>
<asp:ButtonField ButtonType="Image" HeaderImageUrl="~/Images/arrow-right_cinza.gif"
ImageUrl="~/Images/arrow-right_cinza.gif" CommandName="Selecao" />
<asp:BoundField DataField="CategoriaGrupo" HeaderText="Grupo Categoria" >
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="Categoria" HeaderText="Categoria" >
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:ButtonField ButtonType="Image" CommandName="Excluir" ImageUrl="~/Images/excluir.png"
Text="Excluir categoria">
<ItemStyle HorizontalAlign="Center" />
</asp:ButtonField>
</Columns>
</asp:GridView>
<asp:LinkButton ID="LnkNovo" runat="server" CausesValidation="False">Nova categoria</asp:LinkButton>
<br />
<asp:Button ID="BtnHiddenAlterar" runat="Server" Style="display: none" />
<asp:Panel ID="PnlCadastro" runat="server" CssClass="modalPopup" Width="400px" Height="160px">
<%-- Style="display: none">--%>
<br />
<b>Cadastro Categorias</b><table>
<tr>
<td align="right">
Grupo:</td>
<td align="left">
<asp:DropDownList ID="DrpGrupoCategoriaInclusao" runat="server"
ValidationGroup="Cadastrar">
</asp:DropDownList>
</td>
</tr>
<tr>
<td align="right">
Categoria:
</td>
<td align="left">
<asp:TextBox ID="TxtDescricao" runat="server" ValidationGroup="Cadastrar"
Width="221px"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right">
</td>
<td align="left">
<asp:RequiredFieldValidator ID="RfDescricao" runat="server" ControlToValidate="TxtDescricao"
ErrorMessage="Digite a descrição" ValidationGroup="Cadastrar"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:Button ID="BtnCadastrar" runat="server" Text="Cadastrar" OnClick="BtnCadastrar_Click"
ValidationGroup="Cadastrar" />
<input id="CancelButton" runat="server" type="button" value="Cancelar" causesvalidation="False" />
</td>
</tr>
</table>
</asp:Panel>
<ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="LnkNovo"
PopupControlID="PnlCadastro" BackgroundCssClass="modalBackground" DropShadow="true"
CancelControlID="CancelButton">
</ajaxToolkit:ModalPopupExtender>
<asp:Panel ID="PnlAlteracao" runat="server" CssClass="modalPopup" Width="400px"
Height="229px">
<%--Style="display: none">--%>
<br />
<b>Alterar Categorias</b><table>
<tr>
<td align="right">
Grupo:</td>
<td align="left">
<asp:DropDownList ID="DrpGrupoCategoriaAlteracao" runat="server"
ValidationGroup="Alterar">
</asp:DropDownList>
</td>
</tr>
<tr>
<td align="right">
Categoria:
</td>
<td align="left">
<asp:TextBox ID="TxtAlterarDescricao" runat="server" CausesValidation="True"
ValidationGroup="Alterar" Width="221px"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right">
</td>
<td align="left">
<asp:RequiredFieldValidator ID="RfAlteracao" runat="server" ControlToValidate="TxtAlterarDescricao"
ErrorMessage="Digite a descrição" ValidationGroup="Alterar"></asp:RequiredFieldValidator>
<asp:HiddenField ID="HfdAlterar" runat="server" />
</td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:Button ID="BtnAlterar" runat="server" Text="Alterar" OnClick="BtnAlterar_Click"
ValidationGroup="Alterar" />
<input id="BtnAlterarCancelar" runat="server" type="button" value="Cancelar" causesvalidation="False" />
</td>
</tr>
</table>
</asp:Panel>
<ajaxToolkit:ModalPopupExtender ID="ModalAlterar" runat="server" PopupControlID="PnlAlteracao"
BackgroundCssClass="modalBackground" DropShadow="true" CancelControlID="BtnAlterarCancelar"
TargetControlID="BtnHiddenAlterar">
</ajaxToolkit:ModalPopupExtender>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
Lorena Menelli
14/05/2009
não aparece erro.
Lorena Menelli
14/05/2009
aqui está minha página
não consigo visualiza o formview quanto minha página é compilada..
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
<table style="width: 100%; height: 292px;">
<tr>
<td class="style3">
</td>
<td class="style4">
<b>Área Administrativa:</b><br />
Adicione, edite e excluas categorias de produtos.</td>
<td class="style5">
</td>
</tr>
<tr>
<td class="style1">
</td>
<td class="style2">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="CategoryID" DataSourceID="dsCategoria" CellPadding="4"
ForeColor="#333333" GridLines="None">
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkEdite" runat="server" CommandName="Select">Editar</asp:LinkButton>
/
<asp:LinkButton ID="lnkExcluir" runat="server" CommandName="Delete"
onclientclick="return confirm('Tem certeza que deseja excluír essa caegoria?')">Excliír</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Title" HeaderText="Lista de Categoria de produtos"
SortExpression="Title" />
</Columns>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<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>
<asp:ObjectDataSource ID="dsCategoria" runat="server" DeleteMethod="DeleteCat"
InsertMethod="Insert"
SelectMethod="SelectCategory" TypeName="DevMedia.ECommerce.Category">
<DeleteParameters>
<asp:Parameter Name="CategoryId" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="title" Type="String" />
</InsertParameters>
</asp:ObjectDataSource>
<asp:ObjectDataSource ID="dsCategoriaUpdate" runat="server"
SelectMethod="SelecById"
TypeName="DevMedia.ECommerce.Category" UpdateMethod="Update">
<UpdateParameters>
<asp:Parameter Name="CategoryId" Type="Int32" />
</UpdateParameters>
<SelectParameters>
<asp:ControlParameter ControlID="GridView1" Name="CategoryID"
PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
<br />
</td>
<td>
</td>
</tr>
<tr>
<td class="style1">
</td>
<td class="style2">
Form View: Adicone Cegoria</td>
<td>
</td>
</tr>
<tr>
<td class="style1">
</td>
<td class="style2">
<asp:FormView ID="FormView1" runat="server" DataSourceID="dsCategoriaUpdate">
<EditItemTemplate>
CategoryID:
<asp:TextBox ID="CategoryIDTextBox" runat="server"
Text='<%# Bind("CategoryID") %>' />
<br />
Title:
<asp:TextBox ID="TitleTextBox" runat="server" Text='<%# Bind("Title") %>' />
<br />
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True"
CommandName="Update" Text="Update" />
<asp:LinkButton ID="UpdateCancelButton" runat="server"
CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</EditItemTemplate>
<InsertItemTemplate>
CategoryID:
<asp:TextBox ID="CategoryIDTextBox" runat="server"
Text='<%# Bind("CategoryID") %>' />
<br />
Title:
<asp:TextBox ID="TitleTextBox" runat="server" Text='<%# Bind("Title") %>' />
<br />
<asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True"
CommandName="Insert" Text="Insert" />
<asp:LinkButton ID="InsertCancelButton" runat="server"
CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</InsertItemTemplate>
<ItemTemplate>
CategoryID:
<asp:Label ID="CategoryIDLabel" runat="server"
Text='<%# Bind("CategoryID") %>' />
<br />
Title:
<asp:Label ID="TitleLabel" runat="server" Text='<%# Bind("Title") %>' />
<br />
<asp:LinkButton ID="EditButton" runat="server" CausesValidation="False"
CommandName="Edit" Text="Edit" />
</ItemTemplate>
</asp:FormView>
</td>
<td>
</td>
</tr>
<tr>
<td class="style1">
</td>
<td class="style2">
</td>
<td>
</td>
</tr>
</table>
<br />
</asp:Content>
Lorena Menelli
14/05/2009
Lorena Menelli
14/05/2009
como faço para resolver isso?
<asp:Panel ID="PnUp" runat="server" Height="133px" Width="241px">
<asp:Panel ID="PnTitulo" runat="server" Height="122px" Width="232px">
<asp:FormView ID="frmEdit" runat="server" DefaultMode="Edit"
DataSourceID="dsCategoryUpdate" onitemupdated="frmEdit_ItemUpdated"
CellPadding="4" ForeColor="#333333">
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<EditItemTemplate>
<asp:Label ID="lblTitle" Text="Title:" AssociatedControlID="txtTitle" runat="server" />
<asp:RequiredFieldValidator ID="reqTitle" ControlToValidate="txtTitle" Text="(Required)"
ValidationGroup="Edit" runat="server" />
<br />
<asp:TextBox ID="txtTitle" Text='<%# Bind("Title") %>' runat="server" />
<br />
<asp:Button ID="btnEdit" Text="Update" CommandName="Update" ValidationGroup="Edit"
runat="server" />
<asp:Button ID="btnCancel" Text="Cancel" CommandName="Cancel" CausesValidation="false"
runat="server" />
</EditItemTemplate>
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#999999" />
</asp:FormView>
</asp:Panel>
</asp:Panel>
<asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton2_Click">LinkButton</asp:LinkButton>
<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
TargetControlID="LinkButton1" CancelControlID="btnFechar"
PopupControlID="PnUp" PopupDragHandleControlID="PnTitulo"
RepositionMode="RepositionOnWindowResize"
OnOkScript="onOk()" X="310"
Y="145" Enabled="True" Drag="True">
</cc1:ModalPopupExtender>
Fabio Mans
14/05/2009
Por que não utiliza o GridView?
Fabio
Lorena Menelli
14/05/2009
Muuuitto obrigada.. abraço..
pode fechar