c# - Combobox selected item is deleted once selected . Invalid Postback or Callback argument -
i have 4 textboxes 1 combobox , 1 button ( , other controls) in page . based on values typed in textboxes related values updated in combobox. on clicking submit button in page giving following error .
"invalid postback or callback argument. event validation enabled using in configuration or in page. secuity purposes,this feature verifies arguments postback or callback events originate server control rendered them. if data valid , expected . use
clientscriptmanager.registerforeventsvalidation
method in order register postback or callback data validation."
now in page directive added
<%@page enableeentvalidation="false">
when type values in 4 textboxes corresponding value appear in cobobox . when select combobox value, selected value wil deleted . reason ?
<%@ page language="c#" masterpagefile="~/main.master" autoeventwireup="true" codebehind="addechecklist.aspx.cs" inherits="labtrack.webapplication.echecklist.addechecklist" enableeventvalidation ="false" %> <%@ register tagprefix="labinal" tagname="autocompletecontrol" src="~/usercontrols/autocompleteenabledwebusercontrol.ascx" %> <asp:content id="content1" contentplaceholderid="head" runat="server"> <link href="../styles/checklistrev.css" rel="stylesheet" type="text/css" /> <!-- style page --> <link href="../styles/addechecklist.css" rel="stylesheet" type="text/css" /> </asp:content> <asp:content id="content2" contentplaceholderid="contentplaceholder1" runat="server"> <asp:scriptmanager id="scriptmanager1" enablepartialrendering="true" runat="server"> </asp:scriptmanager> <asp:panel id="errormessagepanel" cssclass="errorpanel" visible="true" runat="server"> <div class="errordiv"> <asp:bulletedlist cssclass="errormessage" id="errormessagebulletedlist" runat="server"> </asp:bulletedlist> </div> </asp:panel> <div class="pagetitle"> <asp:label id="pageheaderlabel" runat="server"></asp:label> </div> <div class="maindiv"> <div style="text-align: center;"> <div class="placeholder"> <table id="formtable"> <tr> <td> <asp:updatepanel runat="server" id="updatepanelcustomer" updatemode="conditional"> <contenttemplate> <span class="boldlabellong">customer:</span><br /> <asp:textbox id="customernametextbox" width="200" runat="server"></asp:textbox> <asp:hiddenfield id="ixcustomerhiddenfield" runat="server" /> <asp:button id="customertriggerbutton" runat="server" text="button" style="display: none;" /> </contenttemplate> </asp:updatepanel> </td> <td> <asp:updatepanel runat="server" id="updatepanelprogram" updatemode="conditional"> <contenttemplate> <span class="boldlabellong">program:</span><br /> <asp:textbox id="programnametextbox" width="200" runat="server"></asp:textbox> <asp:button id="programtriggerbutton" runat="server" text="button" style="display: none;" /> <asp:hiddenfield id="ixprogramhiddenfield" runat="server" /> </contenttemplate> <triggers> <asp:asyncpostbacktrigger controlid="customertriggerbutton" eventname="click" /> </triggers> </asp:updatepanel> </td> <td> <asp:updatepanel runat="server" id="updatepanelworkpackage" updatemode="conditional"> <contenttemplate> <span class="boldlabellong">workpackage:</span><br /> <asp:textbox id="workpackagenametextbox" width="200" runat="server"></asp:textbox> <asp:hiddenfield id="ixworkpackagehiddenfield" runat="server" /> <asp:button id="workpackagetriggerbutton" runat="server" text="button" style="display: none;" /> </contenttemplate> <triggers> <asp:asyncpostbacktrigger controlid="programtriggerbutton" eventname="click" /> </triggers> </asp:updatepanel> </td> <td> <asp:updatepanel runat="server" id="updatepanelactivity" updatemode="conditional"> <contenttemplate> <span class="boldlabellong">activity:</span><br /> <asp:textbox id="activitynametextbox" width="200" runat="server"></asp:textbox> <asp:hiddenfield id="ixactivityhiddenfield" runat="server" /> <asp:button id="activitytriggerbutton" runat="server" text="button" style="display: none;" /> </contenttemplate> <triggers> <asp:asyncpostbacktrigger controlid="workpackagetriggerbutton" eventname="click" /> <asp:asyncpostbacktrigger controlid="activitytriggerbutton" eventname="click" /> </triggers> </asp:updatepanel> </td> </tr> </table> </div> <div class="placeholder"> <asp:label id="templatelabel" text="template:" cssclass="controllabel" runat="server"></asp:label> <asp:updatepanel runat="server" id="updatepaneltemplate" updatemode="conditional"> <contenttemplate> <asp:dropdownlist id="templateselectdropdownlist" runat="server" width="400" visible="true" autopostback="true"> </asp:dropdownlist> <asp:hiddenfield id="ixtemplatehiddenfield" runat="server" /> </contenttemplate> <triggers> <asp:asyncpostbacktrigger controlid="workpackagetriggerbutton" eventname="click" /> </triggers> </asp:updatepanel> <asp:panel id="sustainpaneltemplateowner" visible="true" runat="server"> <div> <asp:label id="templateownerlabel" text="owner:" cssclass="controllabel" runat="server"></asp:label> <asp:textbox id="templateownertextbox" cssclass="controlmargin" width="400" runat="server"></asp:textbox> </div> </asp:panel> <asp:hiddenfield id="ixdeliverablehiddenfield" runat="server" /> <asp:hiddenfield id="ixreleaseactionhiddenfield" runat="server" /> <asp:hiddenfield id="ixconfighiddenfield" runat="server" /> <asp:hiddenfield id="ixtemplateownerhiddenfield" runat="server" /> <asp:hiddenfield id="templateselectedsnamehiddenfield" runat="server" /> <asp:hiddenfield id="templateownerselectedsnamehiddenfield" runat="server" /> <asp:hiddenfield id="deliverableselectedhiddenfield" runat="server" /> <div> <asp:label id="deliverablelabel" cssclass="controllabel" runat="server" text="deliverable:"></asp:label> <asp:textbox id="deliverabletextbox" cssclass="controlmargin" width="400" runat="server"></asp:textbox> </div> <asp:panel id="sustainpanelconfig" visible="true" runat="server"> <div> <asp:label id="configurationlabel" runat="server" text="configuration:" cssclass="controllabel"></asp:label> <select id="configurationselect" class="controlmargin"> <option></option> </select> </div> </asp:panel> <asp:panel id="sustainpanelrelease" visible="true" runat="server"> <div> <asp:label id="releaseactionlabel" cssclass="controllabel" runat="server" text="release action:"></asp:label> <asp:textbox id="releaseactiontextbox" cssclass="controlmargin" width="400" runat="server"></asp:textbox> </div> </asp:panel> <asp:panel id="sustainpanel" visible="true" runat="server"> <div class="sustainpanelcontrols"> <div> <asp:label id="changelabel" text="change #: " runat="server"></asp:label> </div> <div> <asp:textbox id="changetextbox" width="110" runat="server"></asp:textbox> </div> <div> <asp:label id="supplementlabel" text="supplement: " runat="server"></asp:label> </div> <div> <asp:textbox id="supplementtextbox" width="80" runat="server"></asp:textbox> </div> <div> <asp:label id="newwrrlabel" text="wrr #: " runat="server"></asp:label> </div> <div> <asp:textbox id="newwrrtextbox" width="80" runat="server"></asp:textbox> </div> <div> <asp:label id="dddlabel" text="3d: " runat="server"></asp:label> </div> <div> <asp:textbox id="dddtextbox" width="80" runat="server"></asp:textbox> </div> </div> <div> <table id="designdatatable2"> <tr> <td> <asp:label id="allfbsheetswrrlabel" text="all f/b sheets w/wrr #:" cssclass="controllabel" runat="server"></asp:label> </td> <td> <asp:textbox cssclass="completecontrol" id="allfbsheetswrrtextbox" width="588" rows="2" textmode="multiline" runat="server"></asp:textbox> </td> </tr> </table> </div> </asp:panel> </div> <div class="editbuttongroup"> <input id="editbutton" type="button" value="edit" class="buttonsettings" /> <input id="removebutton" type="button" value="-" class="buttonsettings" /> <input id="addbutton" type="button" value="+" class="buttonsettings" /> </div> </div> <div class="viewdata"> <div class="viewdatadiv"> <table id="designdatatable" class="designdatatable"> <tbody> </tbody> </table> </div> </div> <div class="submitbuttondiv"> <asp:button id="submitbutton" runat="server" text="button text" class="submitbuttoncreatechecklist" /> </div> </div> </asp:content>
you creating new values on client side, , posting them server.
for security reasons asp.net implements "event validation". when validation enabled, if server creates combo 3 possible values, accept values on postback. if create different value , send server, error you're referring to.
here have info: page.enableeventvalidation property
you can use clientscriptmanager.registerforeventvalidation method if know possible values generated on client side, or disable validation if don't know them in advance.
to disable validation:
you set enableeventvalidation property setting enableeventvalidation attribute of @ page directive or enableeventvalidation attribute of pages element in web.config file. if set property in code, must set before page initialized.
Comments
Post a Comment