hallo zusammen
ich in asp eine maske erstellt, in dieser maske sind 3 checkboxen und textboxen!
im anhang ist ein jpg der maske!
jetzt habe ich folgendes problem! beim laden wird ja die seite vom server gereenderet! wenn ich jetzt die erste checkbox anklicke und danach den button search betätige wird der codebehind (C#) ausgeführt, da beim reenderen der seite vom server die auswahl default auf der ersten checkbox ist!
wenn ich aber die zweite oder die dritte checkbox auswähle und danach den button serach klicke bekomme ich folgende meldung:
Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
ich könnte mir vorstellen das es daran liegt das der server die seite bekommt und danach merkt das diese nicht gleich ist wie die, die er am anfang gereenderet hat!
hoffe jemand kann mir helfen
mfg w1z4rd
Hallo w1z4rd,
zufällig habe ich diese Meldung gestern auch zum ersten Mal gesehen. Der Fehler bei mir war ein zweites Formular, welches sich eingeschlichen hatte 🙂
Ansonsten hast Du ja die Möglichkeit die Überprüfung zu deaktivieren.
Hallo .Kai
Danke für die schnelle Antwort 🙂
die überprüfung deaktiviert man ja so oder? in meinen web.config file sehe ich aber niergend enableEventValidation
<pages enableEventValidation="false" />
Hoi zusammen,
es geht nicht um die Event-Validation, sondern um den Inhalt des Formulares.
For security purposes
jo, die Fehlermeldung deutet darauf hin, dass mehrere "Form" Tags vorhanden sind, genaudass wird hier überprüft. Zusätzlich gibt es einen ähnlichen Fehler, wenn IIS/ASP eine Cross-Site-Attak vermutet (z.B. >< Zeichen in einem Formularfeld ...)
;.)
cu Xynratron
PS: Auch Forms die lokal gehen, können auf dem Server Probleme machen...
Herr, schmeiss Hirn vom Himmel - Autsch!
Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.
PS
<%@ Page EnableEventValidation="true" %>
bedeutet: in deiner SEITE deaktivieren. Global ist echt nicht gut ...
Herr, schmeiss Hirn vom Himmel - Autsch!
Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.
Original von Xynratron
es geht nicht um die Event-Validation, sondern um den Inhalt des Formulares.
Eigentlich geht es doch um den Event. Die Überprüfung schaut ob der Event von dem Control ausgelöst wird, welches den Event auch gerendert hat.
Zusätzlich gibt es einen ähnlichen Fehler, wenn IIS/ASP eine Cross-Site-Attak vermutet (z.B. >< Zeichen in einem Formularfeld ...)
Genau, die Fehlermeldung lautet dann:
A potentially dangerous Request.Form value was detected from the client
Global ist echt nicht gut ..
Sehr ich auch so.
Zusätzlich gibt es einen ähnlichen Fehler, wenn IIS/ASP eine Cross-Site-Attak vermutet (z.B. >< Zeichen in einem Formularfeld ...)
also in meiner aspx site hab ich nur ein <form> und </form>. wie soll ich vorgehen für dieses problem zu lösen? weiss wirklich nicht mehr weiter 🤔
Hallo w1z4rd,
Original von w1z4rd
also in meiner aspx site hab ich nur ein <form> und </form>. wie soll ich vorgehen für dieses problem zu lösen? weiss wirklich nicht mehr weiter 🤔
hatte Xynratron bereits geschrieben. Einfach im Kopf der Seite den Parameter EnableEventValidation einfügen:
<%@ Page EnableEventValidation="true" %>
habe ich gemacht aber bekomme trotzdem die fehlermeldung!
wenn ich der erste radiobutton auswähle und irgendeine strasse schreibe und search klicke funktioniert es! sobald ich aber den zweiten oder der dritte radiobutton klicke geht es nicht! 🙁
Dann zeigt doch mal den Code der Seite, so daß ich den Fehler mal auf meinem Rechner nachvollziehen kann.
Hi .Kai
Also da ist der code...
Searchbutton
<td style="height: 23px; width: 104px;"><asp:linkbutton id="btnSearch" accessKey="S" tabIndex="6" runat="server" CssClass="xpbutton_100" Enabled="True" onclick="OnButtonSearch">Search</asp:linkbutton></td>
OnButtonSearch Methode die beim klicken auf search ausgeführt wird! leider nur wenn der erste radiobutton ausgewählt wird! bei den restlichen zwei erscheint die fehlermeldung.
protected void OnButtonSearch(object sender, System.EventArgs e)
{
TxbDetail.Text = "";
if (RB1.Checked || RB2.Checked)
{
SearchGeopost(sender, e);
}
else if (RB3.Checked)
{
NavigateTo();
}
}
aber nur wenn ich der erste radiobutton klicke! bei den anderen zwei bekomme ich die fehlermeldung!
<%@ Register TagPrefix="igtbl" Namespace="Infragistics.WebUI.UltraWebGrid" Assembly="Infragistics2.WebUI.UltraWebGrid.v6.2, Version=6.2.20062.34, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" %>
<%@ Page language="c#" AutoEventWireup="true" Inherits="Com.Csc.Mds.Webgis.Geopost.MdsGeopostSearchNeu" CodeFile="MdsGeopostSearchNeu.aspx.cs" %>
<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.0 transitional//EN" >
<HTML>
<HEAD>
<title>MdsGeopostSearch</title>
<meta content="False" name="vs_snapToGrid">
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<LINK href="../Core/mds_webgis.css" type="text/css" rel="stylesheet">
<script language="javascript" src="MdsGeopost.js" type="text/javascript"></script>
</HEAD>
<body class="infopanel" onload="top.registerInfoFrame(this);" XMLNS:igtbl="http://schemas.infragistics.com/ASPNET/WebControls/UltraWebGrid">
<form id="Form1" method="post" runat="server">
<table id="Table1" width="372">
<tr>
<!--- Infopanel Titel ---->
<td class="infopaneltitlepanel" vAlign="top" style="width: 100%"><table id="Table2" height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr>
<td class="infopaneltitle" align="left">SEARCH LOCATION</td>
<td align="right"><IMG src="../core/images/ch.png" align="absMiddle"></td>
</tr>
</table>
</td>
</tr>
<tr>
<!--- Contentpanel 1 ---->
<td class="infopanelcontent" vAlign="top" style="width: 100%">
<table class="contentbox" id="Table3" cellSpacing="0" cellPadding="0" width="100%" border="0">
<colgroup>
<col align="left" width="10">
<col align="left" width="50">
<col align="left" width="121">
<col align="left" width="175">
</colgroup>
<tr>
<td colSpan="3"><asp:radiobutton id="RB1" AutoPostBack="false" GroupName="RadioGroup" Runat="server" Text="Postal Address"></asp:radiobutton></td>
</tr>
<tr>
<td></td>
<td>Street:</td>
<td style="WIDTH: 218px" colSpan="2"><asp:textbox id="TxbStreet" tabIndex="1" runat="server" AutoPostBack="False" Width="110px" MaxLength="50"
CssClass="MdsWebGisTextbox"></asp:textbox>
<asp:regularexpressionvalidator id="Regularexpressionvalidator2" Runat="server" CssClass="errorMsg" ControlToValidate="TxbStreet"
ErrorMessage="Error in Field Street." ValidationExpression="[^*][\w\W]{0,100}[*|.]{0,1}">*</asp:regularexpressionvalidator>
Nr:
<asp:textbox id="TxbNr" tabIndex="2" runat="server" AutoPostBack="False" Width="30px" MaxLength="10"
CssClass="MdsWebGisTextbox"></asp:textbox><asp:regularexpressionvalidator id="Regularexpressionvalidator5" Runat="server" CssClass="errorMsg" ControlToValidate="TxbNr"
ErrorMessage="Error in Field Nr" ValidationExpression="[^*][\w\W]{0,100}[*|.]{0,1}">*</asp:regularexpressionvalidator>
</td>
</tr>
<tr>
<td></td>
<td>ZIP / City:</td>
<td style="WIDTH: 218px" colSpan="2"><asp:textbox id="TxbPostCode" tabIndex="3" runat="server" AutoPostBack="False" Width="40px" MaxLength="4"
CssClass="MdsWebGisTextbox"></asp:textbox><asp:regularexpressionvalidator id="RegularExpressionValidator1" Runat="server" CssClass="errorMsg" ControlToValidate="TxbPostCode"
ErrorMessage="ZIP: only numeric values and the characters '*' and '.' are allowed." ValidationExpression="[1-9]{1}[0-9]{0,3}[*|.]{0,1}">*</asp:regularexpressionvalidator>
<asp:textbox id="TxbCity" tabIndex="4" runat="server" AutoPostBack="False" Width="144px" MaxLength="50"
CssClass="MdsWebGisTextbox"></asp:textbox>
<asp:regularexpressionvalidator id="Regularexpressionvalidator3" Runat="server" CssClass="errorMsg" ControlToValidate="TxbCity"
ErrorMessage="Error in Field City" ValidationExpression="[^*][\w\W]{0,100}[*|.]{0,1}">*</asp:regularexpressionvalidator>
</td>
</tr>
<tr>
<td></td>
<td>Canton:</td>
<td><asp:textbox id="TxbCanton" tabIndex="5" runat="server" AutoPostBack="False" Width="30px" MaxLength="2"
CssClass="MdsWebGisTextbox"></asp:textbox><asp:regularexpressionvalidator id="Regularexpressionvalidator4" Runat="server" CssClass="errorMsg" ControlToValidate="TxbCanton"
ErrorMessage="Error in Field Canton" ValidationExpression="[^*][A-Za-z]{0,2}[*|.]{0,1}">*</asp:regularexpressionvalidator>
<asp:checkbox id="ChkCommunity" runat="server" Text="Community"></asp:checkbox></td>
<td rowSpan="4">
<asp:ValidationSummary id="ValidationSummary1" runat="server"></asp:ValidationSummary><br>
</td>
</tr>
<tr>
<td style="HEIGHT: 25px" colSpan="3"><asp:radiobutton id="RB2" AutoPostBack="false" GroupName="RadioGroup" Runat="server" Text="Geographical Site" ></asp:radiobutton></td>
</tr>
<tr>
<td></td>
<td>Location:</td>
<td><asp:textbox id="TxbLocation" tabIndex="5" runat="server" AutoPostBack="False" Width="110px"
MaxLength="50" CssClass="MdsWebGisTextbox"></asp:textbox>
<asp:regularexpressionvalidator id="RegularexpressionvalidatorTxbLocation" Runat="server" CssClass="errorMsg" ControlToValidate="TxbLocation"
ErrorMessage="Error in Field Location" ValidationExpression="[^*][\w\W]{0,100}[*|.]{0,1}">*</asp:regularexpressionvalidator></td>
</tr>
<tr>
<td></td>
<td>Canton:</td>
<td><asp:textbox id="TxbCanton2" tabIndex="5" runat="server" AutoPostBack="False" Width="30px" MaxLength="2"
CssClass="MdsWebGisTextbox"></asp:textbox><asp:regularexpressionvalidator id="RegularexpressionvalidatorTxbCanton2" Runat="server" CssClass="errorMsg" ControlToValidate="TxbCanton2"
ErrorMessage="Error in Field Canton" ValidationExpression="[^*][A-Za-z]{0,2}[*|.]{0,1}">*</asp:regularexpressionvalidator></td>
</tr>
<tr>
<td colSpan="5"><asp:radiobutton id="RB3" AutoPostBack="false" GroupName="RadioGroup" Runat="server" Text="Find Coordinate " ></asp:radiobutton>
X:<asp:textbox id="TxbCoordX" tabIndex="5" runat="server" AutoPostBack="False" Width="55px" MaxLength="10"
CssClass="MdsWebGisTextbox"></asp:textbox>
<asp:regularexpressionvalidator id="RegularexpressionvalidatorTxbX" Runat="server" CssClass="errorMsg" ControlToValidate="TxbCoordX"
ErrorMessage="Only numbers are allowed in coordinate field X." ValidationExpression="[0-9]{0,10}">*</asp:regularexpressionvalidator>
Y:<asp:textbox id="TxbCoordY" tabIndex="5" runat="server" AutoPostBack="False" Width="55px" MaxLength="10"
CssClass="MdsWebGisTextbox"></asp:textbox>
<asp:regularexpressionvalidator id="RegularexpressionvalidatorTxbY" Runat="server" CssClass="errorMsg" ControlToValidate="TxbCoordY"
ErrorMessage="Only numbers are allowed in coordinate field Y." ValidationExpression="[0-9]{0,10}">*</asp:regularexpressionvalidator>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<!--- Navigation1 ---->
<td vAlign="top" height="*" style="width: 100%">
<table id="Table5" height="*" cellSpacing="0" cellPadding="0" width="100%" border="0">
<TBODY>
<tr>
<td style="height: 23px; width: 104px;"><asp:linkbutton id="btnSearch" accessKey="S" tabIndex="6" runat="server" CssClass="xpbutton_100"
Enabled="True" onclick="OnButtonSearch">Search</asp:linkbutton></td>
<td style="height: 23px"><asp:linkbutton id="btnReset" accessKey="R" tabIndex="7" runat="server" CssClass="xpbutton_100"
Enabled="True">Reset</asp:linkbutton></td>
<td style="height: 23px"><asp:linkbutton id="btnClose" accessKey="C" tabIndex="8" runat="server" CssClass="xpbutton_100"
Enabled="True">Close</asp:linkbutton></td>
</tr>
<tr>
<td style="width: 104px">Label:</td>
<td colSpan="2" rowSpan="2"><asp:textbox id="TxbDetail" tabIndex="5" runat="server" AutoPostBack="False" Width="250px" CssClass="MdsWebGisTextbox"
Height="50px" Rows="4" TextMode="MultiLine"></asp:textbox></td>
</tr>
<tr>
<td style="width: 104px"><asp:dropdownlist id="Label" Runat="server" Width="100" OnSelectedIndexChanged="Label_SelectedIndexChanged"></asp:dropdownlist></td>
</tr>
</TBODY>
</table>
</td>
</tr>
<tr>
<!--- Contentpanel 2 ---->
<td class="infopanelcontent" vAlign="top" style="width: 100%">
<table class="contentbox" id="Table4" cellSpacing="0" cellPadding="0" width="100%" border="0">
<colgroup>
<col align="left">
</colgroup>
<tr>
<td><igtbl:ultrawebgrid id=UltraWebGrid1 runat="server" Width="355px" Height="232px" DataSource="<%# dataSet1 %>" onprerender="OnPreRender" ondatabinding="OnDataBinding">
<DisplayLayout JavaScriptFileName="~/Infragistics/ig_common/Scripts/ig_WebGrid.js" JavaScriptFileNameCommon="~/Infragistics/ig_common/Scripts/ig_csom.js"
RowHeightDefault="20px" Version="4.00" SelectTypeRowDefault="Single" BorderCollapseDefault="Separate"
EnableInternalRowsManagement="True" RowSelectorsDefault="No" Name="UltraWebGrid1" CellClickActionDefault="RowSelect">
<AddNewBox>
</AddNewBox>
<Pager PageSize="12" AllowPaging="True">
</Pager>
<HeaderStyleDefault BorderStyle="Solid" BackColor="LightGray">
<BorderDetails ColorTop="White" WidthLeft="1px" WidthTop="1px" ColorLeft="White"></BorderDetails>
</HeaderStyleDefault>
<FrameStyle Width="355px" BorderWidth="1px" Font-Size="8pt" Font-Names="Verdana" BorderStyle="Solid"
Height="232px"></FrameStyle>
<FooterStyleDefault BorderWidth="1px" BorderStyle="Solid" BackColor="LightGray">
<BorderDetails ColorTop="White" WidthLeft="1px" WidthTop="1px" ColorLeft="White"></BorderDetails>
</FooterStyleDefault>
<EditCellStyleDefault BorderWidth="0px" BorderStyle="None"></EditCellStyleDefault>
<SelectedRowStyleDefault TextOverflow="Ellipsis"></SelectedRowStyleDefault>
<RowStyleDefault BorderWidth="1px" BorderColor="Gray" BorderStyle="Solid">
<Padding Left="3px"></Padding>
<BorderDetails WidthLeft="0px" WidthTop="0px"></BorderDetails>
</RowStyleDefault>
</DisplayLayout>
<Bands>
<igtbl:UltraGridBand></igtbl:UltraGridBand>
</Bands>
</igtbl:ultrawebgrid><br>
</td>
</tr>
<tr>
<td><asp:label id="LabelMsg" runat="server" Width="320px" Visible="False">Label</asp:label></td>
</tr>
</table>
</td>
</tr>
<tr>
<!--- Navigation2 ---->
<td vAlign="top" height="*" style="width: 100%">
<table id="Table6" height="*" cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr>
<td><asp:linkbutton id="btnNavigateTo" accessKey="N" tabIndex="10" runat="server" CssClass="xpbutton_100"
Enabled="True">Navigate To</asp:linkbutton></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</HTML>
Original von w1z4rd
hab die lösung gefunden! es funktioniert jetzt 😉
ahh, ich wollte dir gestern Abend noch schreiben das ich keinen Fehler feststellen kann und das Formular bei mir ohne Probleme funktioniert.
Woran lag es denn?
hi .Kai also ich hab in der zeile 2 das AutoEventWireup="true" herausgenommen. kompiliert, danach wieder eingebaut und wieder kompiliert und danach funktionierte es 🙂
habe jetzt aber ein anderes problem! im anhang siehst du das formular das ich benutze! wenn ich z.B Bern eingeben und Kanton BE erscheinen mir die datensätze die unten im ultrawebgrid sichtbar sind! das problem ist das wenn ich z.B 4 selektiere und danach die maustaste loslasse ein PostBack gemacht wird und somit die seite wieder geladen wird! dieses postback brauche ich nicht!
hab mal das zeug debuggt und beim loslassen der maustaste geht der debugger in folgendem code hinein.
protected void OnPreRender(object sender, System.EventArgs e)
{
UltraWebGrid1.DisplayLayout.Pager.CustomLabels = (ArrayList) ViewState["PagingLabels"];
UltraWebGrid1.DisplayLayout.Pager.CurrentPageIndex = 1;
UltraWebGrid1.DisplayLayout.Pager.PageCount = 5; // "2/3, First, Next, Prev, Last"
}
in javascript kann man das postback verhindern indem man einfach am schluss return true eintippt! aber irgendwie geht das hier nicht! hast du eine idee?
mfg
w1z4rd
Original von w1z4rd
in javascript kann man das postback verhindern indem man einfach am schluss return true eintippt! aber irgendwie geht das hier nicht! hast du eine idee?
Du meinst return false? Nur ein return false bricht die Verarbeitung ab.
ehmmm ja sorry return false! aber das geht eben in javascript! in c# weiss ich nicht wie ich ein postback verhindern kann!
Nur das ich es richtig verstehe: Du selektiert eine Zeile im ultrawebgrid und dies löst dann das PostBack aus?
genau! also es spielt keine rolle ob ich eine oder mehrere zelle selektiere! es wird danach einfach ein postback ausgelöst!
Gibt es keine Möglichkeit das über die Eigenschaften des Controls zu deaktivieren?
Ansonsten bleibt dir nur die Alternative die Zeilen selbstständig mit dem return false zu versehen. Leider kenn ich das Control nicht und kann deshalb nicht sagen ob das grundsätzlich möglich ist 🙂
danke für die schnellen antworten 🙂
über die eigenschaften des controls hab ich leider keine möglichkeit das postback zu deaktivieren! wie meinst du die zeilen selbständig mit dem return false zu versehen?
Beim Repeater (oder GridView) habe ich die Möglichkeit nach dem Bind durch die Items zu iterieren.
Beispiel Repeater:
for(i = 0; i < rep.Items.Count; i++)
{
//mach was
}
Ich denke aber das dieses bei deinem Control nicht möglich ist. Ansonsten hilft wohl nur eine Blick in die Hilfe des Controls.
muss mal nachschauen! habe zwar nichts gefunden das mir wirklich weiterhilft aber danke für deine Hilfe! 🙂
hoffe ich finde etwas...