Wednesday, March 21, 2012

problem in serverside validation

hi to all

i have few text box and button in updatepanel . Now i want to do asynchronously postback on button click and for that

i have did my all validation on serverside as follow

CS code

1protected void btnSubmit_Click(object sender, ImageClickEventArgs e)
2 {
3
45try6 {
7if (cmbAdvertisementType.SelectedValue =="0")
8 {
9throw new Exception("You must select a Advertisement Style.");
10 }
1112if (cmbKiosk.SelectedValue =="0")
13 {
14throw new Exception("You must select a Server.");
15 }
1617if (string.IsNullOrEmpty(txtFromDate.Text))
18 {
19throw new Exception("You must supply a Start Date.");
20 }
2122if (string.IsNullOrEmpty(txtToDate.Text))
23 {
24throw new Exception("You must supply an EndDate.");
25 }
2627
2829 System.Threading.Thread.Sleep(4000);
30 DataTable parameterTable = objdt.GetTable();
31 parameterTable.Rows.Add(objdt.CreateRow("@dotnet.itags.org.StarDate", SqlDbType.DateTime, 30, Convert.ToDateTime(txtFromDate.Text, format), ParameterDirection.Input));
32 parameterTable.Rows.Add(objdt.CreateRow("@dotnet.itags.org.EndDate", SqlDbType.DateTime, 30, Convert.ToDateTime(txtToDate.Text, format), ParameterDirection.Input));
33 parameterTable.Rows.Add(objdt.CreateRow("@dotnet.itags.org.ServerId", SqlDbType.Int, 4, Convert.ToInt32(cmbKiosk.SelectedValue), ParameterDirection.Input));
34 parameterTable.Rows.Add(objdt.CreateRow("@dotnet.itags.org.AdvertiseId", SqlDbType.Int, 4, Convert.ToInt32(cmbAdvertisementType.SelectedValue), ParameterDirection.Input));
35 parameterTable.Rows.Add(objdt.CreateRow("@dotnet.itags.org.Mode", SqlDbType.VarChar, 10,"Dataset", ParameterDirection.Input));
36 ds = objDB.GetDSByProcedure("SP_CheckAvailibily", parameterTable);
37 parameterTable.Rows.Clear();
38 gvSlotAvailibily.DataSource = ds;
39 gvSlotAvailibily.DataBind();
40 AccordionView.SelectedIndex = 1;
41 UpdatePanel2.UpdateMode = System.Web.UI.UpdatePanelUpdateMode.Always;
42 UpdatePanel2.ChildrenAsTriggers =true;
43 }
44catch (Exception ex)
45 {
4647 sendPopupMessage(ex.Message);
48 }
49
50 }
5152
5354private void sendPopupMessage(string Message)
55 {
56 ScriptManager.RegisterStartupScript(this,this.GetType(),"key","<script language='Javascript'> alert('" + Message +"'); </script>",false);
57 }

aspx code

1<%@dotnet.itags.org. Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="AdvertiseBook.aspx.cs" Inherits="AdvertiseBook" Title="Advertisement Booking" %>2<%@dotnet.itags.org. Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit"%>3<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">4<aspajax:ScriptManager ID="ScriptManager2" EnablePageMethods="True" EnablePartialRendering="true" EnableScriptLocalization="true" runat="server">5 <Scripts>6 <aspajax:ScriptReference Path="AdvertiseBook.js" />78 </Scripts>910 <Services>11 <aspajax:ServiceReference Path="WebService.asmx" />12 </Services>1314 </aspajax:ScriptManager>1516 <div id="lmenucontainer">17 <div class="menuitem" id="m1" name="m1">18 <asp:LinkButton runat="server" Text="Tabular View" ID="lnkView" onmouseover="lmenuover(m1.id);" onmouseout="lmenuout(m1.id);" OnClick="lnkView_Click"></asp:LinkButton>19 </div>20 <div class="menuitem" id="m2" name="m2">21 <asp:LinkButton runat="server" Text="Add New Agency" ID="lnkaddAgency" onmouseover="lmenuover(m2.id);" onmouseout="lmenuout(m2.id);" OnClick="lnkaddAgency_Click"></asp:LinkButton>22 </div>23 <div id="lm5" onmouseover="lmenuover('lm5');" class="menuitem bottomborder" onmouseout="lmenuout('lm5');" name="lm5">24 <asp:LinkButton id="lnkNewAd" onmouseover="lmenuover('lm5');" onmouseout="lmenuout('lm5');" runat="server" Text="New Advertisement" OnClick="lnkNewAd_Click"></asp:LinkButton>25 </div>26 </div><!-- lmenucontainer closing -->27 <aspajax:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" ChildrenAsTriggers="False" runat="server">28 <ContentTemplate>2930 <div id="disparea" >31 <asp:Panel ID="pnlTableView" runat="server" Visible="false">32 <ajaxToolkit:Accordion ID="AccordionView" runat="server" SelectedIndex="0"33 HeaderCssClass="accordionHeader" HeaderSelectedCssClass="accordionHeaderSelected"34 ContentCssClass="accordionContent" FadeTransitions="false" FramesPerSecond="40"35 TransitionDuration="250" AutoSize="None" RequireOpenedPane="false" SuppressHeaderPostbacks="true">36 <Panes>37 <ajaxToolkit:AccordionPane ID="AccordionPane5" runat="server">38 <Header><a href="http://links.10026.com/?link=" class="accordionLink">Check Availibility of Slot</a></Header>39 <Content>40 <table>41 <tr>42 <td>43 <asp:Label ID="lblAdvertisementType" runat="server" Text="Advertisement Type" ></asp:Label>44 </td>45 <td>46 <asp:DropDownList ID="cmbAdvertisementType" runat="server" OnLoad="cmbAdvertisementType_Load">47 </asp:DropDownList>48 </td>49 </tr>50 <tr>51 <td>52 <asp:Label ID="lblKiosk" runat="server" Text="Kiosk Name" ></asp:Label>53 </td>54 <td>55 <asp:DropDownList ID="cmbKiosk" CssClass="cmbborder" runat="server" OnLoad="cmbKiosk_Load" ></asp:DropDownList>56 </td>57 </tr>58 <tr>59 <td >60 <asp:Label ID="lblFrom" runat="server" Text="From" ></asp:Label>   61 </td><td>62 <asp:TextBox ID="txtFromDate" EnableViewState="true" runat="server"></asp:TextBox>63 <asp:Image ID="imgFromDate" ImageUrl="~/images/Calendar_scheduleHS.png" runat="server" />64 <ajaxToolkit:CalendarExtender ID="CalendarExtender1" Format="dd/MM/yyyy" Animated="true"65 PopupButtonID="imgFromDate" TargetControlID="txtFromDate" EnableViewState="true" runat="server">66 </ajaxToolkit:CalendarExtender>67 </td></tr>68 <tr><td>69 <asp:Label ID="lblTo" runat="server" Text="To" ></asp:Label>70 </td><td>71 <asp:TextBox ID="txtToDate" EnableViewState="true" runat="server"></asp:TextBox>72 <asp:Image ID="imgToDate" ImageUrl="~/images/Calendar_scheduleHS.png" runat="server" />73 <ajaxToolkit:CalendarExtender ID="CalendarExtender2" Format="dd/MM/yyyy" Animated="true"74 PopupButtonID="imgToDate" TargetControlID="txtToDate" EnableViewState="true" runat="server">75 </ajaxToolkit:CalendarExtender>76 </td>77 </tr>78 <tr>79 <td colspan="2" align="center">80 <asp:ImageButton ImageUrl="~/images/submit.gif" ID="btnSubmit" runat="server" OnClientClick="CheckDateValidation();" OnClick="btnSubmit_Click" />8182 </td>83 </tr>848586 </table>87 </Content>88 </ajaxToolkit:AccordionPane>89 <ajaxToolkit:AccordionPane ID="AccordionPane6" runat="server">90 <Header><a href="http://links.10026.com/?link=" class="accordionLink">Tabular View of Slot Allocation</a></Header>91 <Content>92 <asp:GridView AutoGenerateColumns="false" AllowPaging="true" ShowFooter="true" ShowHeader="true" ID="gvSlotAvailibily" runat="server" OnPageIndexChanging="gvSlotAvailibily_PageIndexChanging" >93 <Columns>94 <asp:BoundField DataField="DATE" DataFormatString="{0:MM-dd-yyyy}" HeaderText="Date" />95 <asp:BoundField DataField="Available" HeaderText="Available Slot" ItemStyle-HorizontalAlign="Center" />96 <asp:BoundField DataField="TempBookSlot" HeaderText="Temp Booked Slot" ItemStyle-HorizontalAlign="Center" />97 <asp:BoundField DataField="BookedSlot" HeaderText="Booked Slot" ItemStyle-HorizontalAlign="Center" />98 <asp:BoundField DataField="TotalSlot" HeaderText="Total Slot" ItemStyle-HorizontalAlign="Center" />99 </Columns>100 </asp:GridView>101102 </Content>103 </ajaxToolkit:AccordionPane>104 </Panes>105 </ajaxToolkit:Accordion>106107108 </asp:Panel>109 </div>110 </ContentTemplate>111 <Triggers>112 <aspajax:AsyncPostBackTrigger ControlID="lnkaddAgency" EventName="Click" />113 <aspajax:AsyncPostBackTrigger ControlID="lnkNewAd" EventName="Click" />114 <aspajax:AsyncPostBackTrigger ControlID="lnkView" EventName="Click" />115 <aspajax:AsyncPostBackTrigger ControlID="btnadvertiseSubmit" EventName="Click" />116 </Triggers>117118119 </aspajax:UpdatePanel>

but it not working properly

Both should work

ScriptManager.RegisterStartupScript(this, this.GetType(), "key", "<script language='Javascript'> alert('" + Message + "'); </script>", false);

ScriptManager.RegisterStartupScript(this, this.GetType(), "key", " alert('" + Message + "'); ", true);


here problem is not with sendPopupMessage()

actully after 1st validation it doesn't get submit



http://www.asp.net/AJAX/Documentation/Live/mref/O_T_System_Web_UI_ScriptManager_RegisterStartupScript.aspx

Better way you use validators..

But see for more details

Validation controls, which includes theBaseCompareValidator,BaseValidator,CompareValidator,CustomValidator,RangeValidator,RegularExpressionValidator,RequiredFieldValidator, andValidationSummary control are not compatible with UpdatePanel

See it here

http://weblogs.asp.net/scottgu/archive/2007/01/25/links-to-asp-net-ajax-1-0-resources-and-answers-to-some-common-questions.aspx

You can downlaod compatible ersion of validators from here

http://blogs.msdn.com/mattgi/archive/2007/01/23/asp-net-ajax-validators.aspx

No comments:

Post a Comment