Usuário com melhor resposta
ConfirmButtonExtender com erro

Pergunta
-
Coloquei o controle ajax abaixo referenciado um button dentro do meu formview1
<ajaxToolkit:ConfirmButtonExtender runat="server" TargetControlID="ButtonSalvar"
ConfirmText="Material fora de Espec. Quer cadastrar ?">
</ajaxToolkit:ConfirmButtonExtender>Mas esta dando o erro abaixo:
Server Error in '/' Application.
O controle com ID'' requer um ScriptManager na página. O ScriptManager deve aparecer antes de quaisquer controles que necessitam.
Descrição: Uma exceção não tratada durante a execução da solicitação da web atual. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código. Detalhes da exceção: System.InvalidOperationException: O controle com ID'' requer um ScriptManager na página. O ScriptManager deve aparecer antes de quaisquer controles que necessitam. Erro de origem:
Exceção não tratada foi gerada durante a execução da solicitação da web atual. Informações relacionadas à origem e ao local da exceção podem ser identificadas usando o rastreamento de pilha de exceção abaixo.
Respostas
-
tente ai
AjaxControlToolkit.ConfirmButtonExtender confirm = (AjaxControlToolkit.ConfirmButtonExtender)FormView1 .FindControl("ConfirmBUttonExtender1"); confirm.Enabled = true;
- Marcado como Resposta ricardoti2012 quinta-feira, 21 de fevereiro de 2013 15:29
Todas as Respostas
-
-
Eu adicionei o scriptManager conforme abaixo:
<asp:Button ID="ButtonSalvar" runat="server" CommandName="Insert" Text="Salvar" SkinID="ButtonSalvar"
OnClick="ButtonSalvar_Click" />
<asp:Button ID="ButtonCancelar" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancelar"
SkinID="ButtonCancelar" />
<asp:ScriptManager ID="ScriptManager1" runat="server">
<ajaxToolkit:ConfirmButtonExtender runat="server" TargetControlID="ButtonSalvar"
ConfirmText="Material fora de Espec. Quer cadastrar ?">
</ajaxToolkit:ConfirmButtonExtender></asp:ScriptManager>Mas agora esta dando esse erro:
Server Error in '/' Application.
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: Type 'System.Web.UI.ScriptManager' does not have a public property named 'ConfirmButtonExtender'.
Source Error:Line 351: Line 352: <asp:ScriptManager ID="ScriptManager1" runat="server"> Line 353: <ajaxToolkit:ConfirmButtonExtender runat="server" TargetControlID="ButtonSalvar" Line 354: ConfirmText="Material fora de Espec. Quer cadastrar ?"> Line 355: </ajaxToolkit:ConfirmButtonExtender></asp:ScriptManager>
-
Você está utilizando de maneira errada. Tenta assim
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <asp:Button ID="Button1" runat="server" Text="Button" /> <asp:ConfirmButtonExtender ID="Button1_ConfirmButtonExtender" runat="server" ConfirmText="Material fora de Espec. Quer cadastrar ?" Enabled="True" TargetControlID="Button1"> </asp:ConfirmButtonExtender>
-
Coloquei da forma que voce colocou acima com a diferença que o nome do ConfirmaButton muda:
<asp:ScriptManager ID="
ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Button ID="ButtonSalvar" runat="server" CommandName="Insert" Text="Salvar" SkinID="ButtonSalvar"
OnClick="ButtonSalvar_Click" />
<asp:Button ID="ButtonCancelar" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancelar"
SkinID="ButtonCancelar" />
<ajaxToolkit:ConfirmButtonExtender ID="ConfirmBUttonExtender1" runat="server" TargetControlID="ButtonSalvar"
ConfirmText="Material fora de Espec. Quer cadastrar ?" Enabled="true" >
</ajaxToolkit:ConfirmButtonExtender>E esta dando esse erro:
Server Error in '/' Application.
Extender controls may not be registered before PreRender.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: Extender controls may not be registered before PreRender.
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: Extender controls may not be registered before PreRender.] System.Web.UI.ScriptControlManager.RegisterExtenderControl(TExtenderControl extenderControl, Control targetControl) +432673 System.Web.UI.ScriptManager.RegisterExtenderControl(TExtenderControl extenderControl, Control targetControl) +95 System.Web.UI.ExtenderControl.RegisterWithScriptManager() +176 AjaxControlToolkit.ExtenderControlBase.OnPreRender(EventArgs e) in f:\TeamCity\buildAgent\work\80acd78aa4c25314\Server\AjaxControlToolkit\ExtenderBase\ExtenderControlBase.cs:365 System.Web.UI.Control.PreRenderRecursiveInternal() +103 System.Web.UI.Control.PreRenderRecursiveInternal() +175 System.Web.UI.Control.PreRenderRecursiveInternal() +175 System.Web.UI.Control.PreRenderRecursiveInternal() +175 System.Web.UI.Control.PreRenderRecursiveInternal() +175 System.Web.UI.Control.PreRenderRecursiveInternal() +175 System.Web.UI.Control.PreRenderRecursiveInternal() +175 System.Web.UI.Control.PreRenderRecursiveInternal() +175 System.Web.UI.Control.PreRenderRecursiveInternal() +175 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2496
-
Posta sua pagina .aspx completa. parece que sua TagPrefix estar diferente.
- Editado welington jrModerator terça-feira, 19 de fevereiro de 2013 20:42
- Sugerido como Resposta Samuel Rodrigues dos Anjos quarta-feira, 20 de fevereiro de 2013 00:26
-
Welington Jr a minha pagina aspx inteira não cabe aqui.
Segue a linha de codigo de Acordo com o controle adiconado manualmente. Estou usando o Visual Studio 2010. Framework 4.0
E a minha linha de codigo esta dentro do meu Insert do meu FormView1 conforme abaixo:
<InsertItemTemplate>
<asp:Label ID="Label26" runat="server" Text="Isometrico:" Width="70px" />
<asp:DropDownList ID="DropDownListISOMETRICO" runat="server" DataTextField="ISOMETRICO"
DataValueField="ISOMETRICO" ForeColor="#3366CC" Width="150px" Font-Size="9pt"
DataSourceID="SqlDataSourceISOMETRICO" SelectedValue='<%# Bind("ISOMETRICO") %>'
AutoPostBack="True" ondatabound="DropDownListISOMETRICO_DataBound"
ontextchanged="DropDownListISOMETRICO_TextChanged">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSourceISOMETRICO" runat="server"
ConnectionString="<%$ ConnectionStrings:connectionString %>"
SelectCommand="SELECT DISTINCT(ISOMETRICO),ESP FROM [ISOMETRICOS] WHERE ([CC] = @CC ) ORDER BY [ISOMETRICO]">
<SelectParameters>
<asp:ControlParameter ControlID="TextBoxCentrodeCusto" Name="CC"
PropertyName="Text" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<asp:Label ID="Label38" runat="server" Text="Spool:" Width="40px" />
<asp:TextBox ID="SPOOLTextBox" runat="server" Text='<%# Bind("SPOOL") %>' Width="70px"
MaxLength="10" CssClass="uppercase" ForeColor="#3366cc" Font-Size="9pt" Height="13" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="SPOOLTextBox"
ErrorMessage="Spool não pode ficar em branco">*</asp:RequiredFieldValidator>
<asp:Label ID="Label28" runat="server" Text="Cod. Peça:" Width="65px" />
<asp:DropDownList ID="DropDownListCODPECA" runat="server" DataTextField="CODIGO"
DataValueField="CODIGO" ForeColor="#3366CC" Width="70px" Font-Size="9pt"
DataSourceID="SqlDataSourceCODPECA" SelectedValue='<%# Bind("CODPECA") %>'
AutoPostBack="True" ondatabound="DropDownListCODPECA_DataBound"
ontextchanged="DropDownListCODPECA_TextChanged" >
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSourceCODPECA" runat="server"
ConnectionString="<%$ ConnectionStrings:connectionString %>"
SelectCommand="SELECT DISTINCT(CODIGO) FROM [PECATUBULACAO] ORDER BY [CODIGO]">
</asp:SqlDataSource>
<asp:Label ID="Label39" runat="server" Text="Peça:" Width="35px" />
<asp:TextBox ID="DESCPECATextBox" runat="server" Text='<%# Bind("DESCPECA") %>' Width="345px"
Enabled="false" CssClass="uppercase" ForeColor="#3366cc" Font-Size="9pt" Height="13" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="DESCPECATextBox"
ErrorMessage="Peça não pode ficar em branco">*</asp:RequiredFieldValidator>
<h1></h1>
<asp:Label ID="LabelDIAM1" runat="server" Text="Diametro:" Width="76px" />
<asp:TextBox ID="DIAM1TextBox" runat="server" Text='<%# Bind("DIAM1") %>' Width="50px"
MaxLength="20" CssClass="uppercase" ForeColor="#3366cc" Font-Size="9pt" Height="13" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="DIAM1TextBox"
ErrorMessage="Diametro não pode ficar em branco">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="DIAM1TextBox"
ErrorMessage="Diametro inválido" Font-Size="8pt"
ValidationExpression="^([1-9]{1}[\d]{0,2}(\.[\d]{3})*(\,[\d]{0,2})?|[1-9]{1}[\d]{0,}(\,[\d]{0,2})?|0(\,[\d]{0,2})?|(\,[\d]{1,2})?)$">
*</asp:RegularExpressionValidator>
<asp:Label ID="LabelDIAM2" runat="server" Text="Diametro:" Width="75px" />
<asp:TextBox ID="DIAM2TextBox" runat="server" Text='<%# Bind("DIAM2") %>' Width="50px"
MaxLength="20" CssClass="uppercase" ForeColor="#3366cc" Font-Size="9pt" Height="13" ></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="DIAM2TextBox"
ErrorMessage="Diametro Maior inválido" Font-Size="8pt"
ValidationExpression="^([1-9]{1}[\d]{0,2}(\.[\d]{3})*(\,[\d]{0,2})?|[1-9]{1}[\d]{0,}(\,[\d]{0,2})?|0(\,[\d]{0,2})?|(\,[\d]{1,2})?)$">
*</asp:RegularExpressionValidator>
<asp:Label ID="Label44" runat="server" Text="Qtde:" Width="35px" />
<asp:TextBox ID="QTDETextBox" runat="server" Text='<%# Bind("QTDE") %>' Width="50px"
MaxLength="20" CssClass="uppercase" ForeColor="#3366cc" Font-Size="9pt" Height="13" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator10" runat="server" ControlToValidate="QTDETextBox"
ErrorMessage="Quantidade não pode ficar em branco">*</asp:RequiredFieldValidator>
<asp:Label ID="Label45" runat="server" Text="Cod. Cliente:" Width="75px" />
<asp:TextBox ID="CODCLIENTETextBox" runat="server" Text='<%# Bind("CODCLIENTE") %>' Width="200px"
MaxLength="20" CssClass="uppercase" ForeColor="#3366cc" Font-Size="9pt" Height="13" ></asp:TextBox>
<asp:Label ID="Label49" runat="server" Text="Espec:" Width="40px" />
<asp:TextBox ID="ESPTextBox" runat="server" Text='<%# Bind("ESP") %>' Width="158px"
MaxLength="20" CssClass="uppercase" ForeColor="#3366cc" Font-Size="9pt" Height="13" Enabled="false" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator15" runat="server" ControlToValidate="ESPTextBox"
ErrorMessage="Espec não pode ficar em branco">*</asp:RequiredFieldValidator>
<h1></h1>
<asp:Label ID="Label38888" runat="server" Text="Cod. Material:" Width="85px" />
<asp:DropDownList ID="DropDownListCODMAT" runat="server" Enabled="false"
ForeColor="#3366CC" Width="134px" Font-Size="9pt" DataTextField="CODIGO"
DataValueField="CODIGO" DataSourceID="SqlDataSourceCODMAT" SelectedValue='<%# Bind("CODMAT") %>'
onselectedindexchanged="DropDownListCODMAT_SelectedIndexChanged"
AutoPostBack="true" ondatabound="DropDownListCODMAT_DataBound">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSourceCODMAT" runat="server"
ConnectionString="<%$ ConnectionStrings:connectionString %>"
SelectCommand="SELECT [CODIGO] FROM [MATERIALTUBULACAO] ORDER BY [CODIGO]">
</asp:SqlDataSource>
<asp:Label ID="Label2999" runat="server" Text="Esp. Material:" Width="80px" />
<asp:TextBox ID="ESPMATTextBox" runat="server" Text='<%# Bind("ESPMAT") %>' Width="170px"
MaxLength="150" CssClass="uppercase" ForeColor="#3366cc" Font-Size="9pt" Height="13" Enabled="false" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3UIUIUIU" runat="server" ControlToValidate="ESPMATTextBox"
ErrorMessage="Especificação do Material não pode ficar em branco">*</asp:RequiredFieldValidator>
<asp:Label ID="Label48" runat="server" Text="Grupo Material:" Width="100px" />
<asp:TextBox ID="GRUPOMTextBox" runat="server" Text='<%# Bind("GRUPOM") %>' Width="60px"
MaxLength="5" CssClass="uppercase" ForeColor="#3366cc" Font-Size="9pt" Height="13" Enabled="false" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator14" runat="server" ControlToValidate="GRUPOMTextBox"
ErrorMessage="Grupo Material não pode ficar em branco">*</asp:RequiredFieldValidator>
<asp:Label ID="Label3YHGHG" runat="server" Text="Cod. Schedule:" Width="90px" />
<asp:DropDownList ID="DropDownListCODSCH" runat="server" Enabled="false"
ForeColor="#3366CC" Width="120px" Font-Size="9pt" DataTextField="CODIGO"
DataValueField="CODIGO" DataSourceID="SqlDataSourceCODSCH" SelectedValue='<%# Bind("CODSCH") %>'
onselectedindexchanged="DropDownListCODSCH_SelectedIndexChanged"
AutoPostBack="true" ondatabound="DropDownListCODSCH_DataBound">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSourceCODSCH" runat="server"
ConnectionString="<%$ ConnectionStrings:connectionString %>"
SelectCommand="SELECT [CODIGO] FROM [SCHEDULETUBULACAO] ORDER BY [CODIGO]">
</asp:SqlDataSource>
<h1></h1>
<asp:Label ID="Label2UYHG" runat="server" Text="Schedule:" Width="60px" />
<asp:TextBox ID="DESCSCHTextBox" runat="server" Text='<%# Bind("DESCSCH") %>' Width="220px"
MaxLength="150" CssClass="uppercase" ForeColor="#3366cc" Font-Size="9pt" Height="13" Enabled="false" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3HGHGF" runat="server" ControlToValidate="DESCSCHTextBox"
ErrorMessage="Schedule não pode ficar em branco">*</asp:RequiredFieldValidator>
<asp:Label ID="Label38UY7" runat="server" Text="Cod. ClasseP:" Width="80px" />
<asp:DropDownList ID="DropDownListCODCLASSEP" runat="server" Enabled="false"
ForeColor="#3366CC" Width="80px" Font-Size="9pt" DataTextField="CODIGO"
DataValueField="CODIGO" DataSourceID="SqlDataSourceCODCLASSEP" SelectedValue='<%# Bind("CODCLASSEP") %>'
onselectedindexchanged="DropDownListCODCLASSEP_SelectedIndexChanged"
AutoPostBack="true" ondatabound="DropDownListCODCLASSEP_DataBound">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSourceCODCLASSEP" runat="server"
ConnectionString="<%$ ConnectionStrings:connectionString %>"
SelectCommand="SELECT [CODIGO] FROM [CLASSEPTUBULACAO] ORDER BY [CODIGO]">
</asp:SqlDataSource>
<asp:Label ID="Label2FRDCF" runat="server" Text="ClasseP:" Width="50px" />
<asp:TextBox ID="DESCCLASSEPTextBox" runat="server" Text='<%# Bind("DESCCLASSEP") %>' Width="150px"
MaxLength="150" CssClass="uppercase" ForeColor="#3366cc" Font-Size="9pt" Height="13" Enabled="false" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3IU87Y" runat="server" ControlToValidate="DESCCLASSEPTextBox"
ErrorMessage="ClasseP não pode ficar em branco">*</asp:RequiredFieldValidator>
<asp:Label ID="Label9" runat="server" Text="Usuário:" ></asp:Label>
<asp:TextBox ID="TextBoxUSUARIO" runat="server" ForeColor="#3366cc" Enabled="false"
Text='<%# Bind("USERNAME") %>' Width="149px" CssClass="uppercase" Font-Size="9pt" Height="13"/>
<h1></h1>
<asp:Label ID="Label31" runat="server" Text="Atualização:" ></asp:Label>
<asp:TextBox ID="TextBoxDate" runat="server" ForeColor="#3366cc" Enabled="false"
Text='<%# Bind("DATE", "{0:dd/MM/yyyy}") %>' Width="79px" Font-Size="9pt" Height="13"></asp:TextBox>
<asp:Label ID="Label11" runat="server" Text="C.C.:"/>
<asp:TextBox ID="TextBoxCC" runat="server" ForeColor="#3366cc" Enabled="false"
Text='<%# Bind("CC") %>' Width="50px" CssClass="uppercase" Font-Size="9pt" Height="13"></asp:TextBox>
<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</ajaxToolkit:ToolkitScriptManager>
<asp:Button ID="ButtonSalvar" runat="server" CommandName="Insert" Text="Salvar" SkinID="ButtonSalvar"
OnClick="ButtonSalvar_Click" />
<asp:Button ID="ButtonCancelar" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancelar"
SkinID="ButtonCancelar" />
<ajaxToolkit:ConfirmButtonExtender ID="ConfirmBUttonExtender1" runat="server" TargetControlID="ButtonSalvar"
ConfirmText="Material fora de Espec. Quer cadastrar ?" Enabled="true" >
</ajaxToolkit:ConfirmButtonExtender>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="True" ShowSummary="False" />
</InsertItemTemplate>Aguardo retorno. Obrigado.
-
- Editado welington jrModerator terça-feira, 19 de fevereiro de 2013 21:58
-
-
Desculpe Welington Jr mas eu não encontrei esse codigo base.OnPreRender (e);
Em todo meu Projeto.
E se tiver que colocar ele no meu projeto aonde eu coloco ?
Não sei mas o que fazer... Ja estou com dor de cabeça... uma semana estou tentando e nada.
Por favor sera que alguem pode me ajudar..
Muito Obrigado.
-
-
Esta quase la.
A messagem ja esta aparecendo, mas falta a condição.
meu codigo ficou assim:
<ajaxToolkit:ConfirmButtonExtender ID="ConfirmBUttonExtender1" runat="server" TargetControlID="ButtonSalvar"
ConfirmText="Material fora da Especificação, você quer cadastrar ?Mas eu preciso que quando clique em Sim faça algo e quand clicar em cancalar faça outro.
Mas tudo isso na pagina.aspx.cs pois não pode ser na pagina.aspx
Então quando eu clicar no ButtonSalvar deve ficar mais ou menos assim
Se OK
{
execute 1 processo
}
Se Cancel
{
execute o 2 processo
}
Fico no aguardo. Obrigado.
-
Paulo,
fiz exemplo utilizando javascript. Estuda este código.
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <asp:Button ID="ButtonSalvar" runat="server" CommandName="Insert" Text="Salvar" SkinID="ButtonSalvar" /> <asp:ConfirmButtonExtender ID="ConfirmBUttonExtender1" runat="server" TargetControlID="ButtonSalvar" ConfirmText="Material fora de Espec. Quer cadastrar ?" OnClientCancel="cancelar" Enabled="true"> </asp:ConfirmButtonExtender> <input type="hidden" id="cancelar" name="cancelar" /> <script type="text/javascript"> function cancelar() { document.getElementById("cancelar").value = "true"; document.forms["form1"].submit(); } </script>
.cs
protected void Page_Load(object sender, EventArgs e) { //VERIFICA SE CANCELAR FOI PRESSIONADO if (Request["cancelar"] =="true") { } }
Há quando perguntar abre so uma thread no forum. -
Ok welington jr.
Eu estudei o codigo. So falta uma pequena coisa.
Eu quero deixar meu controle abaixo desabilitado
<asp:ConfirmButtonExtender ID="ConfirmBUttonExtender1" runat="server" TargetControlID="ButtonSalvar" ConfirmText="Material fora de Espec. Quer cadastrar ?" OnClientCancel="cancelar" Enabled="false"> </asp:ConfirmButtonExtender>
E depende de uma condição no meu codigo C# eu habilito ele chamando assim a messagem.
Como eu habilito meu controle ConfirmButtonExtender1 no meu codigo C# ?
Desde ja agradeço.
Aguardo sua reposta.
-
ConfirmBUttonExtender.Enabled = true;
- Editado welington jrModerator quinta-feira, 21 de fevereiro de 2013 13:41
-
Eu ja tentei dessa forma mas não funciona pois o ConfirmButtonExtender esta dentro do FormView1
E todos os controles que estão dentro eu tenho que referecialos
Exemplo abaixo dos controles os quais eu consigo.
DropDownList DropDownListCODPECA = (DropDownList)FormView1.FindControl("DropDownListCODPECA");
TextBox SPOOLTextBox = (TextBox)FormView1.FindControl("SPOOLTextBox");Agora no caso desse controle eu não sei como fazer para o referencialo e ser reconhecido no meu codigo C# da pagina.
Você pode me ajudar ?
-
tente ai
AjaxControlToolkit.ConfirmButtonExtender confirm = (AjaxControlToolkit.ConfirmButtonExtender)FormView1 .FindControl("ConfirmBUttonExtender1"); confirm.Enabled = true;
- Marcado como Resposta ricardoti2012 quinta-feira, 21 de fevereiro de 2013 15:29