| Home | Forums | Reviews | Guides | Newsgroups | Register | Search |
![]() |
| Thread Tools |
| Amelyan |
|
|
|
| |
|
Lucas Tam
Guest
Posts: n/a
|
"Amelyan" <> wrote in
news:: > How can I get state of dynamically created controls (RadioButton, > CheckBox, TextBox.Text) on post back when I click submit button? > > The only way I know is by traversing Response.Form enumberator; > Response.Form.GetEnumerator(), etc. while, identifying specific > controls by programmatically assigned unique id (e.g. > MyButton_AnswerID_123). > > However, I am not sure if that is the proper way. What is the common > practice? On postback, recreate the cotrols - then you can access the previous viewstate of the controls. -- Lucas Tam () Please delete "REMOVE" from the e-mail address when replying. http://members.ebay.com/aboutme/coolspot18/ |
|
|
|
|
|||
|
|||
| Lucas Tam |
|
|
|
| |
|
dave.dolan@gmail.com
Guest
Posts: n/a
|
Lucas Tam wrote: > "Amelyan" <> wrote in > news:: > > > How can I get state of dynamically created controls (RadioButton, > > CheckBox, TextBox.Text) on post back when I click submit button? > > > > The only way I know is by traversing Response.Form enumberator; > > Response.Form.GetEnumerator(), etc. while, identifying specific > > controls by programmatically assigned unique id (e.g. > > MyButton_AnswerID_123). > > > > However, I am not sure if that is the proper way. What is the common > > practice? > > On postback, recreate the cotrols - then you can access the previous > viewstate of the controls. > > -- > Lucas Tam () > Please delete "REMOVE" from the e-mail address when replying. > http://members.ebay.com/aboutme/coolspot18/ What I do is traverse the source of the controls... I generate the controls with an XSLT stylesheet that produces the output from XML read dynamically from a database. I read the template again from the database on post back, and traverse the results there. I isolate particular controls using the Page.FindControl method. That way, if I'm only looking for some of them, I don't have to read through the whole response. |
|
|
|
|
|||
|
|||
| dave.dolan@gmail.com |
|
Amelyan
Guest
Posts: n/a
|
Do you have a simple examle of generating the controls with an XSLT
stylesheet that produces the output from XML read dynamically from a database, then reading the template again from the database on post back, and traversing the results there, and isolating particular controls using the Page.FindControl method? Thanks, -Amelyan <> wrote in message news: oups.com... > > Lucas Tam wrote: >> "Amelyan" <> wrote in >> news:: >> >> > How can I get state of dynamically created controls (RadioButton, >> > CheckBox, TextBox.Text) on post back when I click submit button? >> > >> > The only way I know is by traversing Response.Form enumberator; >> > Response.Form.GetEnumerator(), etc. while, identifying specific >> > controls by programmatically assigned unique id (e.g. >> > MyButton_AnswerID_123). >> > >> > However, I am not sure if that is the proper way. What is the > common >> > practice? >> >> On postback, recreate the cotrols - then you can access the previous >> viewstate of the controls. >> >> -- >> Lucas Tam () >> Please delete "REMOVE" from the e-mail address when replying. >> http://members.ebay.com/aboutme/coolspot18/ > > What I do is traverse the source of the controls... > > I generate the controls with an XSLT stylesheet that produces the > output from XML read dynamically from a database. I read the template > again from the database on post back, and traverse the results there. > I isolate particular controls using the Page.FindControl method. > > That way, if I'm only looking for some of them, I don't have to read > through the whole response. > |
|
|
|
|
|||
|
|||
| Amelyan |
|
dave.dolan@gmail.com
Guest
Posts: n/a
|
yes I do, as a matter of fact. Although explaining it is a bit heavy,
so I'll give it my best shot: The CreateForm() reads the template which is returned as a FOR XML AUTO query from the SQL server. It transforms it into ASP.NET code by applying the stylesheet, then ParseControl will actually render it on the page from a text stream. Then, ProcessResults reads the template again, and walks down through it. In this example, it's building an XML document from the results, but you needn't do that if you don't want to. I just wrote this XML in, XML out so that I can change the backend at some point in the future if I decide to dump SQL server. Then all I'd have to do is change the DB calls to file reads or whatever. Notice that you can't use ParseControl to insert custom user controls (peoplepicker and duedatepicker), you have to have a placeholder in there, and substitute your controls in as childcontrols after the fact. I've cut a bit of the end off my ProcessResults but you get the idea of what you're asking from this here. I have for you the template from the database, the xslt stylesheet, and the code I used Some of this create survey was from a completely different form I had, so the comments and switch statements might not apply to this template. It just goes to show you how little you have to do to the code to completely change the form. Have fun, and post back if you have some questions. -----------------------------------------Template Document from the Database ---------------- <ItemType ITId="1" ITName="New Employee" ITAppLevel="6"> <TypeTemplate TTId="1" TTNo="1" ITId="1" TTName="Name" TTSize="100" TTDesc="Name of the new employee."/> <TypeTemplate TTId="2" TTNo="2" ITId="1" TTName="Locator Code" TTSize="10" TTDesc="Locator code of the new employee."/> <TypeTemplate TTId="5" TTNo="3" ITId="1" TTName="Contractor" TTSize="5" TTDesc="Is this person a contractor?"/> <TypeTemplate TTId="6" TTNo="4" ITId="1" TTName="Start Date" TTSize="12" TTDesc="Indicate the start date."/> <TypeTemplate TTId="26" TTNo="5" ITId="1" TTName="Badge" TTSize="12" TTDesc="Specify the badge number of the new employee (if known)"/> <TypeTemplate TTId="27" TTNo="6" ITId="1" TTName="Manager" TTSize="12" TTDesc="Who will be the manager of the new employee?"/> </ItemType> <ItemType ITId="2" ITName="Directory Access" ITAppLevel="1"> <TypeTemplate TTId="7" TTNo="1" ITId="2" TTName="Directory" TTSize="255" TTDesc="What directory are you requesting access to?"/> <TypeTemplate TTId="8" TTNo="2" ITId="2" TTName="Access Level" TTSize="20" TTDesc="What level of access are you requesting to this directory?"/> <TypeTemplate TTId="21" TTNo="3" ITId="2" TTName="PMt" TTSize="12" TTDesc="Specify the Data Owner of this area."/> <TypeTemplate TTId="42" TTNo="4" ITId="2" TTName="Directory Type" TTSize="128" TTDesc="Specify the type of Directory"/> </ItemType> <ItemType ITId="4" ITName="Unix Account" ITAppLevel="2"> <TypeTemplate TTId="29" TTNo="1" ITId="4" TTName="Host Name" TTSize="25" TTDesc="On which unix host are you requesting an account?"/> </ItemType> <ItemType ITId="5" ITName="SecurID" ITAppLevel="6"> <TypeTemplate TTId="28" TTNo="1" ITId="5" TTName="Used For" TTSize="32" TTDesc="WWW Timesheet if for offsite timesheets only. All others choose VPN."/> </ItemType> <ItemType ITId="6" ITName="CostPoint Access" ITAppLevel="2"> <TypeTemplate TTId="39" TTNo="1" ITId="6" TTName="Type of Access" TTSize="64" TTDesc="Admin or Client level access?"/> </ItemType> <ItemType ITId="7" ITName="Create New FileNET Area" ITAppLevel="2"> <TypeTemplate TTId="31" TTNo="1" ITId="7" TTName="Area Requested" TTSize="2048" TTDesc="To which area in FileNET are you requesting access?"/> </ItemType> <ItemType ITId="8" ITName="ClearCase Client Install" ITAppLevel="2"> <TypeTemplate TTId="33" TTNo="1" ITId="8" TTName="Type of Installation" TTSize="12" TTDesc="Select whether this will be a Basic or Developer installation."/> </ItemType> <ItemType ITId="10" ITName="VSS/VI" ITAppLevel="2"> <TypeTemplate TTId="40" TTNo="1" ITId="10" TTName="Type of Request" TTSize="64" TTDesc="Vss or VI?"/> <TypeTemplate TTId="41" TTNo="2" ITId="10" TTName="Full Path of Area Requested" TTSize="128" TTDesc="Specify the project or area to which you are requesting rights."/> <TypeTemplate TTId="43" TTNo="3" ITId="10" TTName="Need Client Install" TTSize="64" TTDesc="Check 'yes' if you need the client installed"/> <TypeTemplate TTId="44" TTNo="4" ITId="10" TTName="Need User Account" TTSize="64" TTDesc="Check 'yes' if you need a user account for VSS or VI"/> </ItemType> <ItemType ITId="11" ITName="Local Administrator" ITAppLevel="14"> <TypeTemplate TTId="10" TTNo="1" ITId="11" TTName="Justification" TTSize="2048" TTDesc="Specify a justification for requesting local admin rights."/> <TypeTemplate TTId="11" TTNo="2" ITId="11" TTName="Machine Tag" TTSize="10" TTDesc="The tag number of the machine to which you are requesting local admin rights."/> </ItemType> <ItemType ITId="12" ITName="FTP Access" ITAppLevel="2"> <TypeTemplate TTId="12" TTNo="1" ITId="12" TTName="Description" TTSize="2048" TTDesc="Any information relevant to the FTP directory access or creation request."/> <TypeTemplate TTId="32" TTNo="1" ITId="12" TTName="Directory or Project" TTSize="2048" TTDesc="Enter desired name for directory creation, or specify the project to which you need access."/> </ItemType> <ItemType ITId="13" ITName="Outlook Email" ITAppLevel="2"> <TypeTemplate/> </ItemType> <ItemType ITId="14" ITName="Unix Email" ITAppLevel="2"> <TypeTemplate/> </ItemType> <ItemType ITId="15" ITName="Mail Forward" ITAppLevel="10"> <TypeTemplate TTId="13" TTNo="1" ITId="15" TTName="Forward Destination" TTSize="50" TTDesc="Specify the email address to which you are requesting your email be forwarded."/> </ItemType> <ItemType ITId="16" ITName="Private User Folder" ITAppLevel="2"> <TypeTemplate TTId="14" TTNo="1" ITId="16" TTName="Action" TTSize="16" TTDesc="Add or remove this folder?"/> </ItemType> <ItemType ITId="17" ITName="Shared Project Folder" ITAppLevel="2"> <TypeTemplate TTId="15" TTNo="1" ITId="17" TTName="Action Required" TTSize="16" TTDesc="Specify what action this request requires."/> <TypeTemplate TTId="17" TTNo="2" ITId="17" TTName="Primary Data Owner" TTSize="256" TTDesc="Specify who will be responsible for the data stored in this area."/> <TypeTemplate TTId="18" TTNo="3" ITId="17" TTName="Backup Data Owner" TTSize="256" TTDesc="Specify an alternate point of contact."/> <TypeTemplate TTId="19" TTNo="4" ITId="17" TTName="Project Name" TTSize="128" TTDesc="What project will this area be associated with?"/> <TypeTemplate TTId="25" TTNo="5" ITId="17" TTName="Folder Name" TTSize="25" TTDesc="Specify desired folder name. We may remove spaces and special characters if necessary."/> </ItemType> <ItemType ITId="18" ITName="Specific Description" ITAppLevel="0"> <TypeTemplate TTId="30" TTNo="1" ITId="18" TTName="Details" TTSize="2048" TTDesc="Add any detail you could not specify in other areas of the request."/> </ItemType> ------------------------------------------StyleSheet------------------------------------------------ <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns xmlns:uc1="remove"> <xsl omit-xml-declaration="yes"/> <xsl:template match="/"> <table rules="all" border="1" cellpadding="2"> <xsl:for-each select="//ItemType"> <tr> <td align="left"> <asp:Label id="Granter_{position()}" runat="server" > <b> <xsl:value-of select="@ITName" /> </b> </asp:Label> </td> </tr> <tr> <xsl:if test="./TypeTemplate[@TTName]"> <td valign="top"> <table rules="all" cellpadding="2" width="100%"> <xsl:for-each select="TypeTemplate[@TTName]"> <tr> <td align="center"> <xsl:value-of select="@TTName"/> </td> <td align="left" width="250"> <xsl:choose> <xsl:when test="translate(@TTName, ' ','_') = string('Locator_Code')"> <asp title="{@TTDescription}"> <asp:ListItem value="" title="{@TTDescription}" >-- Select --</asp:ListItem> <asp:ListItem value="Location1" /> <asp:ListItem value="Location2" /> </asp </xsl:when> <xsl:when test="@TTName = string('Index Tabs')"> <asp:RadioButtonList id="Index_Tabs" RepeatDirection="Horizontal" runat="server" title="{@TTDescription}"> <asp:ListItem value="1" >Yes</asp:ListItem> <asp:ListItem value="2" >No</asp:ListItem> </asp:RadioButtonList> </xsl:when> <xsl:when test="@TTName = string('Collating')"> <asp:RadioButtonList id="Collating" RepeatDirection="Horizontal" runat="server" title="{@TTDescription}"> <asp:ListItem value="1" >Yes</asp:ListItem> <asp:ListItem value="2" >No</asp:ListItem> </asp:RadioButtonList> </xsl:when> <xsl:when test="@TTName = string('Cover Option')"> <asp:RadioButtonList id="Cover_Option" RepeatDirection="Vertical" runat="server" title="{@TTDescription}"> <asp:ListItem value="1" >Color</asp:ListItem> <asp:ListItem value="2" >Black & White</asp:ListItem> </asp:RadioButtonList> </xsl:when> <xsl:when test="@TTName = string('Color Sides per Sheet')"> <asp:RadioButtonList id="Color_Sides_per_Sheet" RepeatDirection="Horizontal" runat="server" title="{@TTDescription}"> <asp:ListItem value="1" >One</asp:ListItem> <asp:ListItem value="2" >Two</asp:ListItem> </asp:RadioButtonList> </xsl:when> <xsl:when test="@TTName = string('Black and White Sides per Sheet')"> <asp:RadioButtonList id="Black_and_White_Sides_per_Sheet" RepeatDirection="Horizontal" runat="server" title="{@TTDescription}"> <asp:ListItem value="1" >One</asp:ListItem> <asp:ListItem value="2" >Two</asp:ListItem> </asp:RadioButtonList> </xsl:when> <xsl:when test="@TTName = string('Cover Stock')"> <asp title="{@TTDescription}"> <asp:ListItem value="">-- Select --</asp:ListItem> <xsl:for-each select=".//Options"> <asp:ListItem value="{@oID}"><xsl:value-of select="@oName"/></asp:ListItem> </xsl:for-each> </asp </xsl:when> <xsl:when test="@TTName = string('Black and White Stock')"> <asp title="{@TTDescription}"> <asp:ListItem value="">-- Select --</asp:ListItem> <xsl:for-each select=".//Options"> <asp:ListItem value="{@oID}" ><xsl:value-of select="@oName"/></asp:ListItem> </xsl:for-each> </asp </xsl:when> <xsl:when test="@TTName = string('Color Stock')"> <asp title="{@TTDescription}"> <asp:ListItem value="">-- Select --</asp:ListItem> <xsl:for-each select=".//Options"> <asp:ListItem value="{@oID}" ><xsl:value-of select="@oName"/></asp:ListItem> </xsl:for-each> </asp </xsl:when> <xsl:when test="@TTName = string('Binding Method')"> <asp title="{@TTDescription}"> <asp:ListItem value="" >-- Select --</asp:ListItem> <xsl:for-each select=".//Options"> <asp:ListItem value="{@oID}" ><xsl:value-of select="@oName"/></asp:ListItem> </xsl:for-each> </asp </xsl:when> <xsl:when test="@TTName = string('Folding Method')"> <asp title="{@TTDescription}"> <asp:ListItem value="" >-- Select --</asp:ListItem> <xsl:for-each select=".//Options"> <asp:ListItem value="{@oID}" ><xsl:value-of select="@oName"/></asp:ListItem> </xsl:for-each> </asp </xsl:when> <xsl:when test="@TTName = string('Combs and Spiral Colors')"> <asp title="{@TTDescription}"> <asp:ListItem value="" >-- Select --</asp:ListItem> <xsl:for-each select=".//Options"> <asp:ListItem value="{@oID}" ><xsl:value-of select="@oName"/></asp:ListItem> </xsl:for-each> </asp <br/> </xsl:when> <xsl:when test="@TTName = string('Tape Binding')"> <asp title="{@TTDescription}"> <asp:ListItem value="" >-- Select --</asp:ListItem> <xsl:for-each select=".//Options"> <asp:ListItem value="{@oID}" ><xsl:value-of select="@oName"/></asp:ListItem> </xsl:for-each> </asp </xsl:when> <xsl:when test="@TTName = string('Binder Colors')"> <asp title="{@TTDescription}"> <asp:ListItem value="" >-- Select --</asp:ListItem> <xsl:for-each select=".//Options"> <asp:ListItem value="{@oID}" ><xsl:value-of select="@oName"/></asp:ListItem> </xsl:for-each> </asp </xsl:when> <xsl:when test="@TTName = string('Due Date')"> <asp title="{@TTDescription}"></asp </xsl:when> <xsl <asp:TextBox id="{translate(@TTName,' ','_')}" title="{@TTDescription}" TextMode="SingleLine" runat="server" width="{(@TTSize * 12) mod 480}"> <xsl:choose> <xsl:when test="@TTSize < 51"> <xsl:attribute name="TextMode"> SingleLine </xsl:attribute> </xsl:when> <xsl <xsl:attribute name="TextMode"> MultiLine </xsl:attribute> <xsl:attribute name="width"> 100% </xsl:attribute> </xsl </xsl:choose> </asp:TextBox> </xsl </xsl:choose> <xsl:if test="@TTRequiredField = 1"><asp:RequiredFieldValidator id="Validator_{translate(@TTName,' ','_')}" runat="server" ErrorMessage="<br/>{@TTDescription}" ControlToValidate="{translate(@TTName,' ','_')}"></asp:RequiredFieldValidator></xsl:if> </td> </tr> </xsl:for-each> </table> </td> </xsl:if> </tr> </xsl:for-each> </table> <asp:button id="Submitter" runat="server" Text="Submit" /> </xsl:template> </xsl:stylesheet> ------------------------------------Code---------------------------------------------------------------------- private void CreateForm() { // Load the data source SqlConnection sCon = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]); sCon.Open(); System.Text.StringBuilder sb = new System.Text.StringBuilder(); SqlDataReader dr = SqlHelper.ExecuteReader(ConfigurationSettings.AppS ettings["ConnectionString"], CommandType.StoredProcedure, "XmlWorkOrderTemplate"); while(dr.Read()) { sb.Append(dr.GetString(0)); } string xmlString = sb.ToString(); XPathDocument surveyDoc = new XPathDocument(SqlHelper.ExecuteXmlReader(sCon, CommandType.StoredProcedure, "XmlWorkOrderTemplate")); Context.Items["surveyDoc"] = surveyDoc; // Load the xslt to do the transformations XslTransform transform = new XslTransform(); transform.Load(Server.MapPath("~/schemas/XSLTTemplateMaker.xslt")); // Get the transformed result StringWriter sw = new StringWriter(); transform.Transform(surveyDoc, null, sw); string result = sw.ToString(); // remove the namespace attribute result = result.Replace("xmlns:asp=\"remove\"", ""); result = result.Replace("xmlns:uc1=\"remove\"", ""); // parse the control(s) and add it to the page Control ctrl = Page.ParseControl(result); Panel1.Controls.Add(ctrl); DueDatePicker ddp = (DueDatePicker)LoadControl("UC/DueDatePicker.ascx"); PlaceHolder DueDatePH = (PlaceHolder)Panel1.FindControl("Due_Date"); DueDatePH.Controls.Add(ddp); /*PeoplePicker pdo = (PeoplePicker)LoadControl("UC/PeoplePicker.ascx"); PeoplePicker bdo = (PeoplePicker)LoadControl("UC/PeoplePicker.ascx"); PeoplePicker pmt = (PeoplePicker)LoadControl("UC/PeoplePicker.ascx"); PeoplePicker man = (PeoplePicker)LoadControl("UC/PeoplePicker.ascx"); PlaceHolder managerPH = (PlaceHolder)Panel1.FindControl("Manager_6"); managerPH.Controls.Add(man); PlaceHolder primaryDataOwner = (PlaceHolder)Panel1.FindControl("Primary_Data_Owne r_2"); primaryDataOwner.Controls.Add(pdo); PlaceHolder backupDataOwner = (PlaceHolder)Panel1.FindControl("Backup_Data_Owner _3"); backupDataOwner.Controls.Add(bdo); PlaceHolder pmtHolder = (PlaceHolder)Panel1.FindControl("PMt_3"); pmtHolder.Controls.Add(pmt); */ } private void ProcessResults () { ArrayList ItemsForApproval = new ArrayList(); string ITId; string ITName; string TTId; string TTNo; string TTName; string NodeName; string pmtName= ""; errors.Text = ""; messages.Text = ""; //string target = ((PeoplePicker)Page.FindControl("PeoplePicker1")). Value; string target = PeoplePicker1.Value; if (target != null) { //string human = ((PeoplePicker)Page.FindControl("PeoplePicker1")). Text; string human = PeoplePicker1.Text; string dateNow = System.DateTime.Now.ToString(); SRFChainOfCommand requestChain = new SRFChainOfCommand(target); SRFPerson personManager = requestChain.Manager; SRFPerson personDirector = requestChain.Director; RRFWorkOrderSummary wos = new RRFWorkOrderSummary(); bool abort = false; if (target != null) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); sb.Append(Environment.NewLine); sb.Append("<WorkOrder WORequestor=\"" + User.Identity.Name + "\" WOTarget=\"" + target + "\" WOHuman=\"" + human + "\" WODate=\"" + dateNow + "\" >"); sb.Append(Environment.NewLine); // Load the data source XPathDocument surveyDoc = (XPathDocument)Context.Items["surveyDoc"]; // create an iterator for each question XPathNodeIterator itra = surveyDoc.CreateNavigator().Select("//ItemType"); // foreach question while (itra.MoveNext()) { ITId = itra.Current.GetAttribute("ITId", ""); ITName = itra.Current.GetAttribute("ITName", ""); ItemsForApproval.Add(Convert.ToInt32(ITId.ToString ())); //validate here and make sure we have all the data we're going to need for each //type of request switch (ITId) { case "1": // new employee request //make all sorts of wacky stuff happen break; case "2": // directory Access request break; case "11": // local administrator rights break; case "15": // email forward break; case "17": //shared project area break; } sb.Append("<WorkItem ITId=\"" + ITId + "\" WIStatus=\"0\" WIGrant=\"1\" WIStatusDate=\"" + System.DateTime.Now.ToString() + "\">"); sb.Append(Environment.NewLine); sb.Append("<ItemType ITId=\"" + ITId + "\" ITName=\"" + ITName + "\">"); sb.Append(Environment.NewLine); XPathNodeIterator itr = itra.Current.SelectChildren("TypeTemplate", ""); while (itr.MoveNext()) { // get the control name TTId = itr.Current.GetAttribute("TTId", ""); TTNo = itr.Current.GetAttribute("TTNo", ""); TTName = itr.Current.GetAttribute("TTName", ""); NodeName = TTName; if (NodeName.Equals("")) { NodeName = ITName; sb.Append("<TypeTemplate>"); sb.Append(Environment.NewLine); } else { sb.Append("<TypeTemplate TTId=\"" + TTId + "\" TTNo=\"" + TTNo + "\" ITId=\"" + ITId + "\" TTName=\"" + TTName + "\">"); sb.Append(Environment.NewLine); } string controlName = NodeName.Replace(" ", "_"); // + "_" + itr.CurrentPosition.ToString(); // append question information // get the control object ctrl = Panel1.FindControl(controlName); // append the correct filled out information if (ctrl is TextBox) { string theVal = ((TextBox)ctrl).Text; if (theVal.Length > 0) { sb.Append("<Note TTId=\"" + TTId + "\" NData=\"" + theVal.Replace("\"","'").Replace("&", "&") + "\" />"); switch (((TextBox)ctrl).ID) { case "Charge_Number": wos.wosCharge = theVal; Trace.Write("The charge was set to " + wos.wosCharge); break; case "Details": wos.wosDetails = theVal; break; case "Black_and_White_Originals": wos.wosBWOriginals = Convert.ToInt32(theVal); break; case "Black_and_White_Copies": wos.wosBWCopies = Convert.ToInt32(theVal); break; case "Color_Originals": wos.wosColorOriginals = Convert.ToInt32(theVal); break; case "Color_Copies": wos.wosColorCopies = Convert.ToInt32(theVal); break; case "Sets_of_Index_Tabs": wos.wosNumIndexTabs = Convert.ToInt32(theVal); break; } } } if (ctrl is RadioButtonList) { // the selected item might be null if (((RadioButtonList)ctrl).SelectedItem != null) { string theRadioVal = ((RadioButtonList)ctrl).SelectedItem.Value; sb.Append("<Note TTId=\"" + TTId + "\" NData=\"" + ((RadioButtonList)ctrl).SelectedItem.Text + "\" />"); switch (((RadioButtonList)ctrl).ID) { case "Black_and_White_Sides_per_Sheet": wos.wosBWSides = Convert.ToInt32(theRadioVal); break; case "Color_Sides_per_Sheet": wos.wosColorSides = Convert.ToInt32(theRadioVal); break; case "Cover_Option": wos.wosCoverOption = Convert.ToInt32(theRadioVal); break; case "Index_Tabs": wos.wosIndexTabs = Convert.ToInt32(theRadioVal); break; case "Collating": wos.wosCollating = Convert.ToInt32(theRadioVal); break; } } } if (ctrl is Calendar) { sb.Append("<Note TTId=\"" + TTId + "\" NData=\"" + ((Calendar)ctrl).SelectedDate.ToString() + "\" />"); // this means it's the due date, add it to the list. wos.wosDueDate = ((Calendar)ctrl).SelectedDate; } /*if (ctrl is PeoplePicker) { sb.Append("<Note TTId=\"" + TTId + "\" NData=\"" + ((PeoplePicker)ctrl).Value.ToString() + "\" />"); }*/ if (ctrl is PlaceHolder) { //we're taking it on faith that only DueDatePickers will be in placeholders, //but that's ok becuase if that isn't the case, we would have to specify that //manually, and we'd know about the change. DueDatePicker subControl = (DueDatePicker)(((PlaceHolder)ctrl).Controls[0]); if(!subControl.SelectedDate.Equals((new RRFDueDate()).TheDateTime)) { sb.Append("<Note TTId=\"" + TTId + "\" NData=\"" + subControl.SelectedDate.ToString() + "\" />"); } wos.wosDueDate = subControl.SelectedDate; } if (ctrl is DropDownList) { string theVal = ((DropDownList)ctrl).SelectedItem.Value.ToString() ; string theText = ((DropDownList)ctrl).SelectedItem.Text.ToString(); if (theVal.Length > 0) { sb.Append("<Note TTId=\"" + TTId + "\" NData=\"" + theText + "\" />"); switch (((DropDownList)ctrl).ID) { case "Locator_Code": // string wos.wosLocator = theVal; break; case "Cover_Stock": // integer wos.wosCoverStockID = Convert.ToInt32(theVal); break; case "Black_and_White_Stock": //integer wos.wosBWStockID = Convert.ToInt32(theVal); break; case "Color_Stock": // integer wos.wosColorStockID = Convert.ToInt32(theVal); break; case "Binding_Method": //integer wos.wosBindingMethod = Convert.ToInt32(theVal); break; case "Folding_Method": //integer wos.wosFoldingMethod = Convert.ToInt32(theVal); break; case "Combs_and_Spiral_Colors": //integer wos.wosCombsSpiralColors = Convert.ToInt32(theVal); break; case "Tape_Binding": // integer wos.wosTapeBinding = Convert.ToInt32(theVal); break; case "Binder_Colors": // integer wos.wosBinderColors = Convert.ToInt32(theVal); break; } } } sb.Append(Environment.NewLine); sb.Append("</TypeTemplate>"); sb.Append(Environment.NewLine); } sb.Append("</ItemType>"); sb.Append(Environment.NewLine); sb.Append("</WorkItem>"); sb.Append(Environment.NewLine); } sb.Append("</WorkOrder>"); sb.Append(Environment.NewLine); TextBox newBox = new TextBox(); newBox.Text = sb.ToString(); if(!abort) { //try //{ SqlParameter [] param = new SqlParameter[2]; param[0] = new SqlParameter("@Order_Xml", SqlDbType.Text); param[0].Direction = ParameterDirection.Input; param[0].Value = newBox.Text; param[1] = new SqlParameter("@OrderID", SqlDbType.Int); param[1].Direction = ParameterDirection.Output; SqlHelper.ExecuteNonQuery(ConfigurationSettings.Ap pSettings["ConnectionString"], CommandType.StoredProcedure, "XmlNewWorkOrder", param); int WorkOrderID = Convert.ToInt32(param[1].Value.ToString()); wos.wosWOId = WorkOrderID; wos.Insert(); //string emailAddresses = requestChain.User.Email + ";"; |
|
|
|
|
|||
|
|||
| dave.dolan@gmail.com |
|
dave.dolan@gmail.com
Guest
Posts: n/a
|
oops I put the wrong XML template up, might be confusing!
here's the right one: <ItemType ITId="1" ITName="Requestor Information" ITAppLevel="0"> <TypeTemplate TTId="1" TTNo="1" ITId="1" TTName="Charge Number" TTSize="10" TTRequiredField="1" TTDescription="Please enter a charge number for this request."> <CostCategory> <Options/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="2" TTNo="2" ITId="1" TTName="Locator Code" TTSize="10" TTRequiredField="1" TTDescription="Please select a locator code for this request."> <CostCategory> <Options/> </CostCategory> </TypeTemplate> </ItemType> <ItemType ITId="2" ITName="Project Description" ITAppLevel="0"> <TypeTemplate TTId="3" TTNo="1" ITId="2" TTName="Details" TTSize="1000" TTRequiredField="1" TTDescription="Please specify a description for this request."> <CostCategory> <Options/> </CostCategory> </TypeTemplate> </ItemType> <ItemType ITId="3" ITName="Copy Information" ITAppLevel="0"> <TypeTemplate TTId="22" TTNo="1" ITId="3" TTName="Due Date" TTSize="64" TTRequiredField="0" TTDescription="You must select a due date for this document."> <CostCategory> <Options/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="4" TTNo="2" ITId="3" TTName="Black and White Originals" TTSize="5" TTRequiredField="0" TTDescription="Enter the number of black and white pages in the original document."> <CostCategory> <Options/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="5" TTNo="3" ITId="3" TTName="Black and White Copies" TTSize="5" TTRequiredField="0" TTDescription="Enter the number of black and white copies of the entire document (not the number of pages.) "> <CostCategory> <Options/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="6" TTNo="4" ITId="3" TTName="Black and White Sides per Sheet" TTSize="5" TTRequiredField="0" TTDescription="Enter the number of sides per sheet of black and white printing."> <CostCategory> <Options/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="7" TTNo="5" ITId="3" TTName="Color Originals" TTSize="5" TTRequiredField="0" TTDescription="Enter the number of color pages in the original document."> <CostCategory> <Options/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="24" TTNo="6" ITId="3" TTName="Color Copies" TTSize="5" TTRequiredField="0" TTDescription="Enter the number of color copies of the entire document (not the number of pages.) "> <CostCategory> <Options/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="25" TTNo="7" ITId="3" TTName="Color Sides per Sheet" TTSize="5" TTRequiredField="0" TTDescription="Enter the number of sides per sheet of color printing."> <CostCategory> <Options/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="26" TTNo="8" ITId="3" TTName="Cover Option" TTSize="5" TTRequiredField="0" TTDescription="Is you cover printed with color or black ink?"> <CostCategory> <Options/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="10" TTNo="9" ITId="3" TTName="Index Tabs" TTSize="5" TTRequiredField="0" TTDescription="Select Yes if you wish to include index tabs in this document."> <CostCategory> <Options/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="12" TTNo="10" ITId="3" TTName="Sets of Index Tabs" TTSize="5" TTRequiredField="0" TTDescription="How many sets of index tabs per document copied?"> <CostCategory> <Options/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="13" TTNo="11" ITId="3" TTName="Collating" TTSize="5" TTRequiredField="0" TTDescription="Do you wish to have this document collated?"> <CostCategory> <Options/> </CostCategory> </TypeTemplate> </ItemType> <ItemType ITId="4" ITName="Quantities, Color and Paper Options" ITAppLevel="0"> <TypeTemplate TTId="14" TTNo="1" ITId="4" TTName="Cover Stock" TTSize="64" TTCostID="1" TTRequiredField="0" TTDescription="Select the type of cover stock you with to use."> <CostCategory ccID="1" ccName="Cover Stock" ccDesc="Select a cover stock ID from the list." ccCountAs="0"> <Options oID="1" ccID="1" oName="65# - STOCK-BLUE" oUnPrice="0.0200" oDesc=""/> <Options oID="2" ccID="1" oName="65# - STOCK-CANARY" oUnPrice="1.0100" oDesc=""/> <Options oID="3" ccID="1" oName="65# - STOCK-GRAY GRANITE" oUnPrice="0.0000"/> <Options oID="4" ccID="1" oName="65# - STOCK-GREEN" oUnPrice="1.0000" oDesc=""/> <Options oID="5" ccID="1" oName="65# - STOCK-IVORY" oUnPrice="0.0000"/> <Options oID="6" ccID="1" oName="65# - STOCK-SALMON" oUnPrice="0.0000"/> <Options oID="7" ccID="1" oName="65# - STOCK-WHITE" oUnPrice="0.0000"/> <Options oID="20" ccID="1" oName="90# STOCK BLUE" oUnPrice="0.0000"/> <Options oID="17" ccID="1" oName="90# STOCK LIME" oUnPrice="0.0000"/> <Options oID="19" ccID="1" oName="90# STOCK PINK" oUnPrice="0.0000"/> <Options oID="18" ccID="1" oName="90# STOCK YELLOW" oUnPrice="0.0000"/> <Options oID="8" ccID="1" oName="CLEAR PLASTIC-STD ACETATE" oUnPrice="0.0000"/> <Options oID="9" ccID="1" oName="CTC - 11X17-BINDER" oUnPrice="0.0000"/> <Options oID="10" ccID="1" oName="CTC-BOOKLETS" oUnPrice="0.0000"/> <Options oID="12" ccID="1" oName="CTC-CAP. SUM." oUnPrice="0.0000"/> <Options oID="11" ccID="1" oName="CTC-LANDSCAPE" oUnPrice="0.0000"/> <Options oID="13" ccID="1" oName="CTC-WINDOW" oUnPrice="0.0000"/> <Options oID="14" ccID="1" oName="CUSTOM-CONFIDENTIAL" oUnPrice="0.0000"/> <Options oID="15" ccID="1" oName="CUSTOM-WINDOW" oUnPrice="0.0000"/> <Options oID="16" ccID="1" oName="CUSTOM2" oUnPrice="0.0000"/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="15" TTNo="2" ITId="4" TTName="Black and White Stock" TTSize="64" TTCostID="2" TTRequiredField="0" TTDescription="Select the type of stock on which to print black and white pages."> <CostCategory ccID="2" ccName="Black and White Stock" ccDesc="Select Black and White Stock from the list below." ccCountAs="2"> <Options oID="21" ccID="2" oName="20# - LEDGER-STOCK-WHITE" oUnPrice="0.0120" oDesc=""/> <Options oID="36" ccID="2" oName="20# - LEGAL BLUE" oUnPrice="0.0190" oDesc=""/> <Options oID="22" ccID="2" oName="20# - LEGAL- STOCK-WHITE" oUnPrice="0.0700" oDesc=""/> <Options oID="26" ccID="2" oName="20# - LETTER - GOLDEN ROD" oUnPrice="0.0260" oDesc=""/> <Options oID="27" ccID="2" oName="20# - LETTER - GRAY" oUnPrice="0.0260" oDesc=""/> <Options oID="28" ccID="2" oName="20# - LETTER - GRAY GRANITE" oUnPrice="0.0270" oDesc=""/> <Options oID="29" ccID="2" oName="20# - LETTER - GREEN" oUnPrice="0.0030" oDesc=""/> <Options oID="30" ccID="2" oName="20# - LETTER - HOT PINK" oUnPrice="0.0260" oDesc=""/> <Options oID="31" ccID="2" oName="20# - LETTER - IVORY" oUnPrice="0.0260" oDesc=""/> <Options oID="32" ccID="2" oName="20# - LETTER - ORCHID" oUnPrice="0.0260" oDesc=""/> <Options oID="33" ccID="2" oName="20# - LETTER - PINK" oUnPrice="0.0260" oDesc=""/> <Options oID="34" ccID="2" oName="20# - LETTER - SALMON" oUnPrice="0.0270" oDesc=""/> <Options oID="35" ccID="2" oName="20# - LETTER - WHITE" oUnPrice="0.0050" oDesc=""/> <Options oID="23" ccID="2" oName="20# - LETTER-AQUA" oUnPrice="0.0260" oDesc=""/> <Options oID="24" ccID="2" oName="20# - LETTER-BLUE" oUnPrice="0.0030" oDesc=""/> <Options oID="25" ccID="2" oName="20# - LETTER-CANARY" oUnPrice="0.0030" oDesc=""/> <Options oID="40" ccID="2" oName="24# LETTER BRIGHT GREEN" oUnPrice="0.0010" oDesc=""/> <Options oID="38" ccID="2" oName="24# LETTER LIME" oUnPrice="0.0100" oDesc=""/> <Options oID="41" ccID="2" oName="24# LETTER ORANGE" oUnPrice="0.0110" oDesc=""/> <Options oID="39" ccID="2" oName="24# LETTER RED" oUnPrice="0.0110" oDesc=""/> <Options oID="117" ccID="2" oName="TRANSPARENCIES" oUnPrice="0.1865" oDesc=""/> <Options oID="37" ccID="2" oName="TRANSPARENCIES" oUnPrice="0.1870" oDesc=""/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="16" TTNo="3" ITId="4" TTName="Color Stock" TTSize="64" TTCostID="3" TTRequiredField="0" TTDescription="Select the type of stock on which you wish to print color pages."> <CostCategory ccID="3" ccName="Color Stock" ccDesc="Select Color Stock from the list below." ccCountAs="1"> <Options oID="58" ccID="3" oName="100# LEDGER" oUnPrice="0.0510" oDesc=""/> <Options oID="57" ccID="3" oName="100# LETTER" oUnPrice="0.0510" oDesc=""/> <Options oID="43" ccID="3" oName="24# LEDGER" oUnPrice="0.0120" oDesc=""/> <Options oID="44" ccID="3" oName="24# LEGAL" oUnPrice="0.0120" oDesc=""/> <Options oID="42" ccID="3" oName="24# LETTER" oUnPrice="0.0120" oDesc=""/> <Options oID="46" ccID="3" oName="28# LEDGER" oUnPrice="0.0290" oDesc=""/> <Options oID="45" ccID="3" oName="28# LETTER" oUnPrice="0.0210" oDesc=""/> <Options oID="49" ccID="3" oName="32# 18X12" oUnPrice="0.0390" oDesc=""/> <Options oID="48" ccID="3" oName="32# LEDGER" oUnPrice="0.0360" oDesc=""/> <Options oID="47" ccID="3" oName="32# LETTER" oUnPrice="0.0310" oDesc=""/> <Options oID="51" ccID="3" oName="60# LEDGER" oUnPrice="0.0630" oDesc=""/> <Options oID="50" ccID="3" oName="60# LETTER" oUnPrice="0.0630" oDesc=""/> <Options oID="53" ccID="3" oName="65# LEDGER" oUnPrice="0.0750" oDesc=""/> <Options oID="52" ccID="3" oName="65# LETTER" oUnPrice="0.0710" oDesc=""/> <Options oID="56" ccID="3" oName="80# GLOSS letter or ledger" oUnPrice="0.0990" oDesc=""/> <Options oID="54" ccID="3" oName="80# LEDGER" oUnPrice="0.0830" oDesc=""/> <Options oID="55" ccID="3" oName="80# LETTER" oUnPrice="0.0410" oDesc=""/> <Options oID="97" ccID="3" oName="CD Label 2-up" oUnPrice="0.3510" oDesc=""/> <Options oID="118" ccID="3" oName="Label 1-up" oUnPrice="0.4812" oDesc=""/> <Options oID="59" ccID="3" oName="Label 2-up" oUnPrice="0.5000" oDesc=""/> <Options oID="60" ccID="3" oName="TRANSPARENCIES" oUnPrice="0.0000"/> </CostCategory> </TypeTemplate> </ItemType> <ItemType ITId="5" ITName="Binding and Finishing Options" ITAppLevel="0"> <TypeTemplate TTId="17" TTNo="1" ITId="5" TTName="Binding Method" TTSize="64" TTCostID="4" TTRequiredField="0" TTDescription="Select the binding method you wish to use for this document."> <CostCategory ccID="4" ccName="Binding Method" ccDesc="Select binding method below."> <Options oID="61" ccID="4" oName="BINDER, 3-RING" oUnPrice="0.0000"/> <Options oID="62" ccID="4" oName="BOOKLET" oUnPrice="0.0000"/> <Options oID="63" ccID="4" oName="CLIP" oUnPrice="0.0000"/> <Options oID="66" ccID="4" oName="GBC COMB" oUnPrice="0.0000"/> <Options oID="68" ccID="4" oName="LAMINATING" oUnPrice="0.0000"/> <Options oID="64" ccID="4" oName="PAD" oUnPrice="0.0000"/> <Options oID="67" ccID="4" oName="PUNCH" oUnPrice="0.0000"/> <Options oID="65" ccID="4" oName="SPIRAL" oUnPrice="0.0000"/> <Options oID="69" ccID="4" oName="STAPLE" oUnPrice="0.0000"/> <Options oID="70" ccID="4" oName="TAPE" oUnPrice="0.0000"/> <Options oID="71" ccID="4" oName="THERMAL" oUnPrice="0.0000"/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="18" TTNo="2" ITId="5" TTName="Folding Method" TTSize="64" TTCostID="5" TTRequiredField="0" TTDescription="Select the folding method you wish to use for this document (if any)"> <CostCategory ccID="5" ccName="Folding Method" ccDesc="Select folding method below."> <Options oID="73" ccID="5" oName="DOUBLE LETTER FOLD" oUnPrice="0.0000"/> <Options oID="72" ccID="5" oName="DOUBLE PARALLEL FOLD" oUnPrice="0.0000"/> <Options oID="74" ccID="5" oName="ENGINEERING FOLD" oUnPrice="0.0000"/> <Options oID="75" ccID="5" oName="FAN FOLD" oUnPrice="0.0000"/> <Options oID="76" ccID="5" oName="FRENCH FOLD" oUnPrice="0.0000"/> <Options oID="77" ccID="5" oName="LETTER FOLD" oUnPrice="0.0000"/> <Options oID="78" ccID="5" oName="SINGLE FOLD" oUnPrice="0.0000"/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="19" TTNo="3" ITId="5" TTName="Combs and Spiral Colors" TTSize="64" TTCostID="6" TTRequiredField="0" TTDescription="Select the type of spiral or combs you wish to use for this document."> <CostCategory ccID="6" ccName="Combs and Spiral Colors" ccDesc="Select color of combs and spirals below."> <Options oID="79" ccID="6" oName="BLACK" oUnPrice="0.0000"/> <Options oID="116" ccID="6" oName="BLACK 1/2"" oUnPrice="0.0500" oDesc=""/> <Options oID="80" ccID="6" oName="BLUE" oUnPrice="0.0000"/> <Options oID="81" ccID="6" oName="GRAY" oUnPrice="0.0000"/> <Options oID="85" ccID="6" oName="HUNTER GREEN" oUnPrice="0.0000"/> <Options oID="83" ccID="6" oName="MAROON" oUnPrice="0.0000"/> <Options oID="84" ccID="6" oName="NAVY" oUnPrice="0.0000"/> <Options oID="82" ccID="6" oName="WHITE" oUnPrice="0.0000"/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="20" TTNo="4" ITId="5" TTName="Tape Binding" TTSize="64" TTCostID="7" TTRequiredField="0" TTDescription="Select the type of binding tape you wish to use on this document."> <CostCategory ccID="7" ccName="Tape Binding" ccDesc="Select type of binding tape below."> <Options oID="86" ccID="7" oName="BLACK BINDING TAPE" oUnPrice="0.0000"/> <Options oID="90" ccID="7" oName="BROWN BINDING TAPE" oUnPrice="0.0000"/> <Options oID="89" ccID="7" oName="GREEN BINDING TAPE" oUnPrice="0.0000"/> <Options oID="87" ccID="7" oName="GREY BINDING TAPE" oUnPrice="0.0000"/> <Options oID="91" ccID="7" oName="NAVY BINDING TAPE" oUnPrice="0.0000"/> <Options oID="88" ccID="7" oName="RED BINDING TAPE" oUnPrice="0.0000"/> <Options oID="92" ccID="7" oName="WHITE BINDING TAPE" oUnPrice="0.0000"/> </CostCategory> </TypeTemplate> <TypeTemplate TTId="21" TTNo="5" ITId="5" TTName="Binder Colors" TTSize="64" TTCostID="8" TTRequiredField="0" TTDescription="Select the type of binder you wish to use in this document."> <CostCategory ccID="8" ccName="Binder Colors" ccDesc="Select color of binders below."> <Options oID="100" ccID="8" oName="BLACK 1 1/2"" oUnPrice="2.6500" oDesc=""/> <Options oID="98" ccID="8" oName="BLACK 1"" oUnPrice="1.9500" oDesc=""/> <Options oID="94" ccID="8" oName="BLACK 1/2" oUnPrice="2.2000" oDesc=""/> <Options oID="99" ccID="8" oName="BLACK 2"" oUnPrice="3.3500" oDesc=""/> <Options oID="101" ccID="8" oName="BLACK 2-1/2"" oUnPrice="3.9800" oDesc=""/> <Options oID="102" ccID="8" oName="BLACK 2-1/2"" oUnPrice="3.9800" oDesc=""/> <Options oID="103" ccID="8" oName="BLACK 3"" oUnPrice="4.1000" oDesc=""/> <Options oID="110" ccID="8" oName="WHITE 1" D-ring" oUnPrice="2.8000" oDesc=""/> <Options oID="105" ccID="8" oName="WHITE 1" Round Ring" oUnPrice="1.9500" oDesc=""/> <Options oID="93" ccID="8" oName="WHITE 1" Round Ring" oUnPrice="1.9500" oDesc=""/> <Options oID="111" ccID="8" oName="WHITE 1-1/2" D-ring" oUnPrice="2.9900" oDesc=""/> <Options oID="106" ccID="8" oName="WHITE 1-1/2" Round Ring" oUnPrice="2.6500" oDesc=""/> <Options oID="104" ccID="8" oName="WHITE 1/2" Round Ring" oUnPrice="2.2000" oDesc=""/> <Options oID="112" ccID="8" oName="WHITE 2" D -ring" oUnPrice="3.8600" oDesc=""/> <Options oID="107" ccID="8" oName="WHITE 2" Round Ring" oUnPrice="3.3500" oDesc=""/> <Options oID="113" ccID="8" oName="WHITE 2-1/2" D-ring" oUnPrice="4.1100" oDesc=""/> <Options oID="108" ccID="8" oName="WHITE 2-1/2" Round Ring" oUnPrice="3.9800" oDesc=""/> <Options oID="114" ccID="8" oName="WHITE 3" D-ring" oUnPrice="4.1500" oDesc=""/> <Options oID="109" ccID="8" oName="WHITE 3" Round Ring" oUnPrice="4.0600" oDesc=""/> <Options oID="115" ccID="8" oName="WHITE 4" D-ring" oUnPrice="8.9900" oDesc=""/> </CostCategory> </TypeTemplate> </ItemType> |
|
|
|
|
|||
|
|||
| dave.dolan@gmail.com |
|
|
|
| |
![]() |
| Thread Tools | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Affecting a dynamically created drop down from another dynamically created drop down. | msimmons | ASP .Net | 0 | 07-16-2009 03:17 PM |
| Retaning state of Dynamically Created Controls in ASP.NET. | aroraamit81@gmail.com | ASP .Net | 3 | 04-10-2006 01:16 PM |
| Managing ViewState of a dynamically created Custom Composite Server Control -(where the original is also dynamically created) | dickster | ASP .Net Building Controls | 0 | 12-08-2005 09:32 AM |
| dynamically created controls an session state | Julia | ASP .Net | 0 | 07-10-2005 09:24 AM |
| Maintaining View State For Dynamically Created Controls | =?Utf-8?B?RWFybCBUZWlncm9i?= | ASP .Net | 0 | 10-07-2004 08:07 PM |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc..
SEO by vBSEO ©2010, Crawlability, Inc. |




