|
I have a couple of ASP.NET web pages; the first page does a cross-page postback to the second. This second page has an AJAX update panel. The second page has a server-side button outside the update panel. The button runs JavaScript (onclientclick) to close the page and open the calling page, and it functions properly when the button is clicked. When I take some other action on page 2 that triggers an AJAX call, the JavaScript triggers, closes the page, and returns to the calling page. I changed the button to a server-side linkbutton with the same JavaScript and now the page behaves as it should.
Is this one of the bad characteristics of the update panel?
|
|
|
|
|
server side controls just write HTML for you. In the time it takes to write a server control on the page, you could have just written plain HTML.
You really need to look at the page source and look at the HTML that was written between the 2 server controls, button and link button. Since I cant see the page and examine the HTML, I cannot do any forensics on it.
In the update panel, you can assign async postback triggers for a button to fire the assigned server function in a partial post back, in which a small round trip of the HTML inside the update panel is sent to the server as a partial post back, and HTML is sent back and replaced on the page within that container.
You may of just made a mistake onClientClick, it should return false to stop a post back event.
eg. onClientClick = "returnUrl(); return false;"
I stopped using update panels over 6 years ago, because they were buggy and unreliable in terms of speed during a full load on the internet connection or distance; say across the country, and the user would always misinterpret the situation. I got way better at planning or engineering forms after that, just using jQuery or JavaScript to complete the task, or just do a full post back to the server.
In fact better yet, I stopped using web forms completely and went MVC to produce much better work faster with higher quality.
|
|
|
|
|
Thank you for your prompt response. I have been advised before to move to MVC with Razor. But I am too old to redo my site. Thus far I have been able to work around problems like this one; but I am always curious about the cause. I went to an update panel to avoid page jump back to the top on postback. If there is a simple way to avoid this, I would certainly look into it.
I am looking at movint to jquery and HTML5.
|
|
|
|
|
Generally I find web forms are "okay" when you're using the old-school postback model, but struggle greatly when it comes to handling AJAX. This is generally because the framework tries to hide the execution context from the developer, and UpdatePanels are about the worst offenders.
I quickly replace any web forms application that is put in my care with a .NET MVC or a JavaScript SPA, depending on scale and needs. Just the maintenance problems alone warrant it, IMO.
You're not going to get away from the client-vs-server side issues as long as you're using web forms.
"There are three kinds of lies: lies, damned lies and statistics."
- Benjamin Disraeli
|
|
|
|
|
Nathan,
Thank you for your advice. Is there any tool that can convert web pages to MVC? Or, do I need to build from scratch? I don't use any data handling on the pages except for login control. All of the pages gather input and present calculation results from VB code behind. Are these pages still usable in an MVC project? So far, it all still works. I'll have to have someone from China check the speed. I use Godaddy hosting. These servers may be in Australia.
|
|
|
|
|
Honestly if it all still works I'd be surprised if you got any management support for re-coding the project. There are no tools that I'm aware of that will effectively parse out web forms into .NET MVC.
I would assume up front than anything you write in .NET MVC will need to be fresh code, but can be informed by the business rules of pre-existing web forms applications.
"There are three kinds of lies: lies, damned lies and statistics."
- Benjamin Disraeli
|
|
|
|
|
Nathan,
Thanks for your affirmation. With the pace of change to web development things might look quite different in a couple years. So it seems that there is no easy transition. And you are right about convincing management. Because that is me, and I am also the owner. I built the site 10 years ago and have progressively upgraded content and function. This is a hobby, and so far some of the applications are free. But not the best stuff, which requires a subscription. I think what I will do is wait until the site no longer functions with developing technology. At that point, depending on when it comes, I'll move the applications to a cloud. Everything that is on the site I also have a desktop windows form application. I think that this can be served to clients securely so that the apps cannot be copied and distributed at will. My current project is to use SQLight with some of my applications that now use MS Access. But it seems that Microsoft doesn't play nicely with it. Sometimes it works; sometimes not.
|
|
|
|
|
Hi All,
I am trying to call an action method on a button click, I am trying to create and declare my button as below, basically it is in the Index.cshtml page or View from there I want to redirect my page to the "CreateUser.cshtml", my Controller name is "UserController" and my Action method is "CreateUser".
My Controllers are in Controllers folder and My user related Views are in "\Views\User" folder under root folder
<input type="button" value="Create User" onclick="location.href='@Url.Action("Create", "User")'" />
And my View where the button is there is:
@model MVCWithWebApiApp.Models.User
@{
ViewBag.Title = "Index";
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Users Details</title>
<script src="~/Scripts/jquery-2.2.4.min.js"></script>
<script src="~/Scripts/angular.min.js"></script>
<script src="~/Scripts/myApp.js"></script>
</head>
<body>
<h2>Index</h2>
<div data-ng-app="myApp" data-ng-controller="userController">
<table style="border:none 0px gray;">
<tr>
<td>
<table style="border:solid 1px gray;">
<tr>
<td style="border:solid 1px gray;">User Id</td>
<td style="border:solid 1px gray;">User Name</td><br />
</tr>
<tr data-ng-repeat="usr in users">
<td>{{usr.UserId}}</td>
<td>{{usr.UserName}}</td><br />
</tr>
</table>
<pre>
</td>
<td>
<input type="button" value="Create User" onclick="location.href='@Url.Action("Create", "User")'" />
</td>
</tr>
</table>
</div>
And Controller is:
<pre>
public class UserController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult GetUsers()
{
var dbContext = new MVCDBContext();
List<User> listOfUsers;
listOfUsers = dbContext.Users.ToList();
return Json(listOfUsers, JsonRequestBehavior.AllowGet);
}
public ActionResult Details(int id)
{
return View();
}
public ActionResult CreateUser()
{
return View();
}
[HttpPost]
public ActionResult CreateUser(FormCollection collection)
{
try
{
var dbContext = new MVCDBContext();
User user = new User();
user.UserId = 1;
user.UserName = "Abdul";
dbContext.Users.Add(user);
dbContext.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
public ActionResult UpdateUser(int id)
{
return View();<br />
}
[HttpPost]
public ActionResult UpdateUser(int id, FormCollection collection)
{
try
{
var dbContext = new MVCDBContext();
User user = new User();
user.UserId = 1;
user.UserName = "Abdul";
user = dbContext.Users.Where(i => i.UserId == 1).FirstOrDefault();
user.UserName = "Abdul Aleem";
dbContext.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
public ActionResult DeleteUser(int id)
{
return View();
}
[HttpPost]
public ActionResult DeleteUser(int id, FormCollection collection)
{
try
{
var dbContext = new MVCDBContext();
User user = new User();
IQueryable<User> Users = dbContext.Users.Where(i => i.UserId == 1);
foreach (User a in Users)
{
dbContext.Users.Remove(a);
}
dbContext.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
}
And Web.config within View Folder is:
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.web>
<httpHandlers>
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>
<pre>
<!--
Enabling request validation in view pages would cause validation to occur
after the input has already been processed by the controller. By default
MVC performs request validation before a controller processes the input.
To change this behavior apply the ValidateInputAttribute to a
controller or action.
-->
<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
<system.webserver>
<validation validateintegratedmodeconfiguration=""false"">
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
Not only the @Url my View is giving error at @model that model doesn't exist and saying ViewBag doesn't exist.
If you need my model
namespace MVCWithWebApiApp.Models
{
public class User
{
private int _userId;
public int UserId
{
get { return _userId; }
set { _userId = value; }
}
private string _userName;
public string UserName
{
get { return _userName; }
set { _userName = value; }
}
}
}
Please help me I am new to ASP.Net MVC
Thanks,
Abdul Aleem
"There is already enough hatred in the world lets spread love, compassion and affection."
modified 14-Jun-16 16:49pm.
|
|
|
|
|
Well you can use a Razor Html Helper
ActionLink to make a button
@Html.ActionLink("Create User", "Create", "User", new { userID = "-1"] }, new { @class = "btn btn-default" })
Or an A element using Url.Action for the href, then change the class to make it look like an button.
<a class="btn btn-default" href="@Url.Action("Create", "User", new { userID = "-1" })" data-toggle="tooltip" data-placement="bottom" title="Create User" data-original-title="Create User">Create User</a>
I did look at your code. You need to create a model in the controller actionresult "Create" and return it in the view, so the page has a model to work with.
|
|
|
|
|
I am new to ASP.Net MVC, do I need to create all those html helper classes, it is very confusing for me now I am used to that drag and drop in Web Forms design. Now it seems I need to learn lots of lots of things.
Apart from Html Helper classes can you please name me some challenges I would get while I am new and implementing ASP.Net MVC. I am learner I can learn but the thing is if learning is helping me then I can. I tried what could be the reason for the errors that I am getting at these helper classes and model, ViewBag keywords but didn't get much help and reason for that.
And just asking one more thing why is the model and ViewBag are also showing errors as model and ViewBag are not recognizable objects. How can I resolve that issue? Why is that issue coming I am not sure at all.
Please help me I am learning ASP.Net MVC and implementing it.
Thanks,
Abdul Aleem
"There is already enough hatred in the world lets spread love, compassion and affection."
modified 15-Jun-16 14:58pm.
|
|
|
|
|
If your model is not showing up in intellisense, then you need to reference that model in the view
So let's pretend this is a view file. I created my Model in a class with the namespace Indigo.Entities.Models so in the first line in the view, I add ...
@using Indigo.Entities.Model
In the 2nd line, I make a reference to the Model
@model model_customer_Addresses
So now it looks like this
@using Indigo.Entities.Models;
@model model_customer_Addresses
@{
ViewBag.Title = @Model.Name + "'s Addresses";
Layout = "~/Views/Shared/Admin/_adminLayout.cshtml";
}
So what is the model? Think of it like a custom container or lunch box. In the lunch box you declare a sandwich, fruit and beverage. You build or declare the model in the controller, then pass the model to the view. The view knows that the model says you have to have all 3 in the lunchbox, and will not let you post the page until all 3 are selected; Validate! once validation is complete, the page will post the model back to the controller which can then pass the model to the database to write a record.
On the form, you create 3 elements, 1 assigned to sandwich, 1 to fruit, 1 to beverage.
Wrap it in a form element, add a submit button, some validation and your done!
As far as Html helpers goes, they are Razor, which creates shortcuts for writing HTML Elements. In other words, all they do is generate HTML. The benefits to using Razor is organizing the
Text, Action and Controller. and it also aids in Url routing. The rendering engine will figure out how to construct or code the URL, and the controller will figure out how to read or decode the Url.
My first MVC project was so hard to learn. I had no clue what I was doing and wondered it it was worth it. Now I'm on my 3rd project and it's well worth it. I'm not going back to web forms.
But be careful using Razor. I'm using less and less of it now.
Consider this, you can use razor to write an ActionLink, or just write an A element
<a class="btn btn-primary" href="@Url.Action("AddressesBilling", "Admin", new { caID = Model.CustomerID, baID = address.BillingID })" data-toggle="tooltip" data-placement="bottom" title="Edit the customers billing address" data-original-title="Edit the customers billing address">Edit</a>
This creates a button using the A element or hyperlink, but I was still able to use Razor to calculate the Url that has routing attached to it. The bootstrap turns the hyperlink into a button.
indian143 wrote: I am new to ASP.Net MVC, do I need to create all those html helper classes, it is very confusing for me now I am used to that drag and drop in Web Forms design. Now it seems I need to learn lots of lots of things.
Not really, just write great HTML and then fill in the spaces using Razor. Razor is tricky, like the @ char rules. Once you declare @, you don't have to use it again in the same line. Just watch the Yellow markers that will help you.
indian143 wrote: And just asking one more thing why is the model and ViewBag are also showing errors as model and ViewBag are not recognizable objects. How can I resolve that issue? Why is that issue coming I am not sure at all.
I don't use the ViewBag, I make better models that include everything I need. The hardest part of MVC is designing the models. Models have to be reusable, compact, not duplicated, organized which is very important.
You have to change the way you think about organizing data. And constantly update your models to be more reusable until your really good at it.
Like take a customer for instance. The customer will have an account name, email address, password, date. but perhaps the customer will have an address as well. So you create a model called address or something.
your model would be
name
email
password
date
address as model_address below
and the address model would be
address1
city
state
country
stateList - List of states for dropdown
countryList - List of countries for dropdown
Hope that helps!
|
|
|
|
|
Yes helps me a lot for taking time to help me and take my ASP.Net MVC phobia out
Thanks,
Abdul Aleem
"There is already enough hatred in the world lets spread love, compassion and affection."
|
|
|
|
|
Still it is saying me the same thing that model doesn't exist in the current context and same with ViewBag? Am I missing any references or any Html Helper Classes etc?
Thanks,
Abdul Aleem
"There is already enough hatred in the world lets spread love, compassion and affection."
|
|
|
|
|
Did you return a model to the view?
Remember I said you need to update the controller for the view, by creating the model and returning it to the view.
return View(model);
I don't know about the viewbag, I don't use them anymore.
|
|
|
|
|
Yes I am passing the model still it gives me error saying "Name model doesn't exist in current context" at the place where I am mentioning @model
Here is my View
@*@using MVCWithWebApiApp.Models
@model MVCWithWebApiApp.Models.User
@{
ViewBag.Title = "Index";
}*@
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Users Details</title>
<script src="~/Scripts/jquery-2.2.4.min.js"></script>
<script src="~/Scripts/angular.min.js"></script>
<script src="~/Scripts/myApp.js"></script>
</head>
<body>
<h2>Index</h2>
<div data-ng-app="myApp" data-ng-controller="userController">
<table style="border:none 0px gray;">
<tr>
<td>
<table style="border:solid 1px gray;">
<tr>
<td style="border:solid 1px gray;">User Id</td>
<td style="border:solid 1px gray;">User Name</td><br />
</tr>
<tr data-ng-repeat="usr in users">
<td>{{usr.UserId}}</td>
<td>{{usr.UserName}}</td><br />
</tr>
</table>
<pre>
</td>
<td>
<a class="btn btn-primary" href="@Url.Action("AddressesBilling", "Admin", new { caID = Model.CustomerID, baID = address.BillingID })" data-toggle="tooltip" data-placement="bottom" title="Edit the customers billing address" data-original-title="Edit the customers billing address">Edit</a>
</td>
</tr>
</table>
</body>
</html>
And my controller I have added this code still it doesn't help me.
public ActionResult CreateUser()
{
User user = new User();
user.UserId = 1;
user.UserName = "Abdul";
return View(user);
}
Am I making any error in my Web.Config here I am putting it here, any suggestion helps me
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
</namespaces>
</pages><br />
</system.web.webPages.razor>
<appSettings>
<add key="webpages:Enabled" value="false" />
<add key="webpages:Version" value="2.0.0.0" />
</appSettings>
<system.web>
<httpHandlers>
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>
<pre>
<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
<system.webserver>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
Thanks,
Abdul Aleem
"There is already enough hatred in the world lets spread love, compassion and affection."
|
|
|
|
|
Yes I am doing it here is the code that I am doing, but still it gives me errors in all those places of @Url, @model and ViewBag all of them, I know you are not using ViewBag but I giving that information because the errors that maybe related anyways I am getting tired with ASP.Net MVC specially the ones that are given Microsoft that are like Html Helper classes etc.
I never faced difficulty in resolving errors in any other place.
public ActionResult Index()
{
var dbContext = new MVCDBContext();
List<User> listOfUsers;
listOfUsers = dbContext.Users.ToList();
return View(listOfUsers);
}
Thanks,
Abdul Aleem
"There is already enough hatred in the world lets spread love, compassion and affection."
|
|
|
|
|
Oh your using angular. I thought you were using Razor and HTML Helpers. My Bad it was in your example in the first post.
How to use AngularJS in ASP.NET MVC and Entity Framework - Evangelism - Infragistics.com Blog[^]
With Angular, you make calls to JsonResults, which is like a webservice, only your calling the controller for just json data. Then the Angular takes the Json data and populates the fields. So modify that controller code to return JsonResult, get your data as a list and return it.
|
|
|
|
|
I don't know much difference in both buddy, just asking OK if I am using angular, in the browser should we call the action method or should we call the plain html file? I am confused which to use when?
Thanks,
Abdul Aleem
"There is already enough hatred in the world lets spread love, compassion and affection."
|
|
|
|
|
I've never done AngularJS. It's on my list but not today.
Is using Angular a requirement for a job your working on?
|
|
|
|
|
There is an application with us named "MirrorTools" which was existing more than 7 years and we are not the developers (no clue on whether this application developed internally within organization or online product)
We have an Mirrortools.exe and MirrorTools.exe.config file.I am calling this Mirrortools by via an .bat file which carries the following code
@echo off
title TestRaw Refresh
MirrorTools --refresh --dtimeout=86400 A.xml BLog
MailSender --to=aaa@yahoo.com,bbb@yahoo.com --subject="[MirrorTools] TestRAWSubject Refresh USPLSVULM132" BLog
del BLog
and the config file contains following code...
<?xml version="1.0"?>
<configuration>
<system.data>
<DbProviderFactories>
<remove invariant="Oracle.DataAccess.Client" />
<add name="Oracle .NET Data Provider" description="Oracle .NET Data Provider" invariant="Oracle.DataAccess.Client" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
</DbProviderFactories>
</system.data>
</configuration>
While I am executing the bat file i am getting the following error
Unhandled exception : system.configuration.configurationerrorexception: Failed to find or load the registered .net framework data provider.
System.Data.Common.DbProviderFactories.GetFactory(DataRow providerRow)
at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariant
Name)
at MirrorTools.TaskManager.CreateDataSource()
at MirrorTools.TaskManager.RunMirrorJobs()
at MirrorTools.TaskManager.Execute()
at MirrorTools.TaskManager.Execute(Configuration config)
at MirrorTools.Program.Main(String[] args)
Looking forward your help pls
modified 14-Jun-16 9:59am.
|
|
|
|
|
Make sure that you have installed ODP.NET in your system.
Once installed install Oracle.DataAccess.* into GAC using GacUtil
|
|
|
|
|
Overview
The purpose of the application is to allow end-users to quickly enter and manage a list of name/value pairs.
Although this test must be written without any other persons help, any standard reference material that is used during a normal programming cycle may be used (such as online help or books). No third party class libraries or code snippets may be used.
Create a Windows Forms application using a UI similar to the one shown below. The application code should be written in C# , unless you are specifically applying for a position that does not require C# skills or were given instructions to do otherwise.
Required Features:
Name/Value pairs are to be entered into the upper textbox. This textbox will be used by the end-user to quickly add Name/Value pairs to the list below.
When a Name/Value pair is about to be added to the list it must be validated to ensure proper syntax. If the syntax is incorrect then the Name/Value pair must not be added. The Name/Value pair entry format is shown below:
=
Where is the name portion of the pair, and is the value portion of the pair. Only valid Name/Value pairs can be added. Names and Values can contain only alpha-numeric characters. The equal-sign is used to delimit the pair, spaces before and/or after the equal-sign may be entered by the end user (and should be ignored.)
When the ‘Sort by Name’ button is pressed the list will be sorted ascending by Name.
When the ‘Sort by Value’ button is pressed the list will be sorted ascending by Value.
When the ‘Delete’ button is pressed all selected items in the listbox will be deleted.
When the ‘Save as XML’ button is pressed, all of the items in the listbox must be saved to an XML file.
When the ‘Exit’ button is pressed the program will close.
|
|
|
|
|
Sorry, but this site does not provide code to order.
|
|
|
|
|
Member 12579290 wrote: this test must be written without any other persons help
That should be "person's help".
|
|
|
|
|
Member 12579290 wrote: this test must be written without any other persons help
You've failed the test.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|