|
harold aptroot wrote: Why do people just keep posting ASP.NET questions here
For the same reason they keep advertising ASP.net jobs as C# jobs.
|
|
|
|
|
Hi,
When one choice changes, how are you going to keep the result from another choice made earlier? The page reloads, doesn't it? With new variables, initialized at zero?
the easiest and safest way is to calculate total prize in a separate method that collects all required data;
then invoke that method from within all your Changed handlers. So every change recalculates the total price.
Luc Pattyn
Local announcement (Antwerp region): Lange Wapper? Neen!
|
|
|
|
|
Well your code is a bit of a mess. As Luc has pointed out, ASP.NET will reset each of those class variables to zero on postback. There is the option of persisting values between postbacks but a more elegant solution would be to calculate the price whenever you need it.
I would approach this as follows, start with a method to do the actual proce calculation
private decimal CalculatePrice()
{
decimal sizePrice = 0;
switch(rblSize.SelectedValue)
{
case "Slice": sizePrice = 8;break;
case "Small": sizePrice = 10;break;
}
decimal ingredientsPrice = 0;
for (int i = 0; i < cblIngredients.Items.Count; i++)
{
if (cblIngredients.Items[i].Selected)
{
ingredientsPrice ++;
}
}
return sizePrice + ingredientsPrice ;
}
Next have this method called when either action is performed
protected void RadioButtonList1_SelectedIndexChanged1(object sender, EventArgs e)
{
decimal totalPrice = CalculatePrice();
lblPriceTotal.Text = totalPrice.ToString();
)
protected void cblIngredients_SelectedIndexChanged(object sender, EventArgs e)
{
decimal totalPrice = CalculatePrice();
lblPriceTotal.Text = totalPrice.ToString();
}
|
|
|
|
|
Marcus Farrugia wrote: I'm creating an asp.net Pizza order form using c# for a night school course
OK, I'm going to apologies in advance if the following is either to simple or too complicated. If you are going to use C# you should really look into object oriented design (lots of references around), but only when and if you are comfortable with control flow logic (loops and descision statements etc). Getting you head around this will save a lot of work in the long run, but it's daunting as you start out (or it was for me anyway )
You should condisder breaking some of your code down further into classes. A class is a way of gathering properties (e.g. Size) and methods (e.g. Add/Remove Toppings) into one logical place (often representing something in the real world). This is known as encapuslation and prevents any unwanted side-effects from other things happening if you do it correctly. e.g. in your example a mistake is causing the total to be incorrect.
For example:
If you create a class called Topping, you could create several of these. The topping might have a property called Description (e.g. Description = "Ham") and a set of prices for each size (there are several way to do this, e.g. have a property for each size, which is less good or consider using a Dictionary )
Now you could have Pizza class, this could have a List of Toppings, a Size (and a list of pizza-base prices for each size, just like the topping) an a calculate cost method. To calculate the cost, you take the pizza-base cost for the current size, and for each topping add it's cost according to the pizza size.
A good initial way to work out which classes, properties and methods you need is to write down what you want to achieve, nouns indicate classes or properties, verbs indicate a method is required.
e.g.
A pizza can come in different sizes and have several toppings added or removed as required. Calculate the cost of the pizza and show to the customer.
Note that you'll see the classes Pizza and Topping I sugested highlighted as well as the size property. Also highlighted are "Add[Topping]" and "Remove[Topping]", I haven't put these on the pizza class directly, though you could. I have suggested you create a property called Toppings which is a List of toppings (List<Topping> google up List<T> for more advice). The list itself has an Add & Remove methods, so you don't have to add them.
This seems like a chore, but 99% of the time it works easier. For example you could now add new types of topping easily or add stuff to save to a database. If you implement it well , new pizza sizes should be easy and the code you write should be more readable, robust & easy to adapt to new requirements (all of which are important when programming)!
Good luck with your course, and I hope you enjoy it. I'm jelous, I wish I could unlearn the stuff I have done, just so I could re-learn it! On the up side I suppose there are lots of cool new things being done in IT to find out about all the time. I am such a geek!
CCC solved so far: 2 (including a Hard One!)
|
|
|
|
|
Hi! Maxwell. I'm working with ASP C# and i'm trying to up pictures to the file. I have sample code:
string concatName = null, picname = null, strImageFolderPath = null, strImagePath = null;
DateTime now;
HttpPostedFile uploadedImage;
now = DateTime.Now;
concatName = Request.QueryString["||"].ToString() + now.Year.ToString() +
now.Month + now.Day + now.Hour + now.Minute + now.Second;
uploadedImage = FileUpload11.PostedFile;
picname = System.IO.Path.GetFileName("MAI" + concatName + ".jpg");
strImageFolderPath = Path.Combine
(Request.PhysicalApplicationPath, "pictures");
strImagePath = Path.Combine(strImageFolderPath, picname);
uploadedImage.SaveAs(strImagePath); //error "Object reference not set to an instance of an object."
Help me please
|
|
|
|
|
Mix Wheels wrote: uploadedImage.SaveAs(strImagePath); //error "Object reference not set to an instance of an object."
how many references are there in this line? I see 1.
hence uploadedImage is null. fix that.
Luc Pattyn
Local announcement (Antwerp region): Lange Wapper? Neen!
|
|
|
|
|
Hello all,
How can I allow a user to type a letter on the keyboard and have a DataGridView (DGV) change current row to the first occurrence of the letter within a non-Primary Key column.
For example, LastName is a column in a DGV. Typing ‘S’ should change the current row of the DGV to the first Lastname that starts with an ‘S’. Note: LastName is not the primary key of the bound table.
I am using a DataGridView bound to a DataSet.Table[] without a binding source.
Here is a code snippet I tried, but it returns -1:
ds.Tables["Students"].DefaultView.Sort = "LastName";
int intRow = ds.Tables["Students"].DefaultView.Find("S%");
I have also tried this, but it returns zero rows:
ds.Tables["Students"].DefaultView.Sort = "LastName";
DataRowView[] drv = ds.Tables["Students"].DefaultView.FindRows("LastName LIKE 'S'");
Thanks in advance,
KCI
Live long and prosper.
|
|
|
|
|
Isn't the last one missing a wildcard?
JimSchor wrote: ds.Tables["Students"].DefaultView.Sort = "LastName";
DataRowView[] drv = ds.Tables["Students"].DefaultView.FindRows("LastName LIKE 'S*'");
I are Troll
|
|
|
|
|
Hello Troll,
Thanks for the advice.
I just tried it and no difference.
Any more thought anyone?
KCI
Live long and prosper.
|
|
|
|
|
Here is how I eventuall worked this out. I have not tested it deeply so take this only as an outline:
using System.Collections.Generic;
private string strKeyPreview = String.Empty
private List<string> strStudent_List = null;
private void dgv_KeyPress(object sender, KeyPressEventArgs e)
{
strKeyPreview = e.KeyChar.ToString();
int intRow = strStudent_List.FindIndex(StartsWithLetter);
if (intRow >= 0)
{
dgv[3, intRow].Selected = true;
dgv.FirstDisplayedScrollingRowIndex = intRow;
}
}
private bool StartsWithLetter(String s)
{
if (s.StartsWith(strKeyPreview.ToUpper()) == true)
{
return true;
}
else
{
return false;
}
}
strStudent_List = new List<string>();
foreach (DataRow dr in dt.Rows)
{
strStudent_List.Add(dr[2].ToString());
}
Feel free to post improvement ... I'm sure this is not bullet proof as it is untested.
Live long and prosper.
|
|
|
|
|
i have a treeView in splitterContainer, the treeview flickers when i try to resize the Form using mouse at any of the corner screen edges. the flickering will not happen if i try to increase the Forms Width, or the Lenght. it flickers only when i increase size of the Form at the corner edges. Can you help me with this i am using VS 2005.
|
|
|
|
|
Hi
I wish to remove installed program from control panel using C# . Can anyone suggest me something how to proceed?
|
|
|
|
|
To remove application from control panel, just go to C:\WINDOWS\system32 and rename the file with ".CPL" extension.
Just write a code to do that.
|
|
|
|
|
Ajithevn wrote: an anyone suggest me something how to proceed?
Yes. Try to reformulate your question.
* Do you want to remove an applet from the control panel (e.g., removing the "Mouse" icon from the folder "Configuration"), OR
* Do you want to uninstall an application (e.g., uninstall FireFox), OR
* Do you want to remove an entry in the list of installed applications (e.g., when an app is deinstalled, but still listed in the 'installed applications')
I are Troll
|
|
|
|
|
yes i want to uninstall an application. i.e i have created a setup of my application and intalled it and i want to uninstall that application from another c# application.
|
|
|
|
|
Take a look at the registry, under the key
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ie8 It contains a key called UninstallString , with the value "C:\Windows\ie8\spuninst\spuninst.exe". If you execute that application, it will uninstall IE8. The key also contains the name of the app (e.g., "Windows Internet Explorer 8") and the InstallDate (e.g., 20090806). You'll also find service-packs and the likes if you browse further. Alternatively, you can search the registry for the key "uninst.exe".
Not every application will have such an entry. DOS-applications are usually copied, and thus don't register an uninstaller for the app. Also keep in mind that the current user might not have the privileges to uninstall applications.
Happy Programming
I are Troll
|
|
|
|
|
Got the bugger!
It seems that 2 things aren't happening and I can't tell if this is going to be the case every time. It took a bit of doctoring and manual splicing of the the .sln file and the .csproj files. Seems like the configuration manager is not creating the new build configurations inside the .csproj files
Solution:
1. .csproj files, add the build configuration from another file that already has a successful one
2. .sln file (this is bit complicated, backup before you get too ballsy)
i) find the name of the project(s) that is giving you hell, at the far right of that defining line, you'll find a GUID, this is the project GUID that is referenced later, you'll also need to copy the GUID for a working project under the configuration that you want to fix
ii) scroll down and find in the section titled "GlobalSection(ProjectConfigurationPlatforms) = postSolution" an entry for the working project (by GUID) (e.g. {72C74E6F-8D11-4324-A412-1905FFEACD5E}.Radiology|Any CPU.ActiveCfg = Release|Any CPU) Note, you will find that projects left loaded when this configuration is chosen will have two entries, whilst the unloaded ones have only a single line entry
ii)copy this entry and then find the list of entries for the project that's giving you hell (by GUID), insert it into this list by pasting it (you'll see that it does not have a list item); Be sure to replace the GUID in the pasted item to that of the project that's giving you issues.
3.Save the files
4. Fire up VS or if its already open, if asked to reload the solution/projects, accept. If they were unloaded, reload the projects that you manually amended.
5. Build with the projects once
6. Unload the projects you wanted (the ones you just manually spliced)
7. Build again to check.
8. Happy coding (or as much as possible)
If done right, it should work.
The current Solution I'm working on has 19 projects at the moment and there are another 4 on the way. Because of the size of the solution and because build times are beyond annoying and for to simplify traces and a plethora of other reasons, projects that are not involved directly in the current cycle of development and testing are unloaded. This worked like a charm until yesterday evening when a new project was added, along with its own configuration (there are 9 configurations at the moment, I added another 2 last night and eventually there will be 15).
I get this error message when I build:
Error 1 The OutputPath property is not set for this project. Please check to make sure that you have specified a valid Configuration/Platform combination. Configuration='Radiology' Platform='AnyCPU' AppChooser
Now, I've figured out the reason is because I've unloaded the two project being referenced. Reloading them (which brings me back to the complete list of projects) makes the build go perfectly fine.
Googling has shown that others have faced similar problems, I just couldn't find any solutions or workarounds.
Suggestions?
If the post was helpful, please vote, eh!
Current activities:
Book: Devils by Fyodor Dostoyevsky
Project: Hospital Automation, final stage
Learning: Image analysis, LINQ
Now and forever, defiant to the end.
What is Multiple Sclerosis[ ^]?
modified on Thursday, October 1, 2009 9:38 AM
|
|
|
|
|
|
Thanks Vasudevan, I didn't see your post because I was mucking about with the .csproj and .sln files.
Got it to work
If you'd like to know how, check the OP.
Thanks a zillion though, the method in the link seems a simpler way of doing it.
If the post was helpful, please vote, eh!
Current activities:
Book: Devils by Fyodor Dostoyevsky
Project: Hospital Automation, final stage
Learning: Image analysis, LINQ
Now and forever, defiant to the end.
What is Multiple Sclerosis[ ^]?
|
|
|
|
|
Hi Mustafa!
I've only a little build experience and not a lot in more unusual setups (such as the need to build certain projects), so apologies if I've misunderstood your question.
Rather than unloading unneeded projects, is setting them not to build under the particular configuration an option? You can build all the projects once per config, then disable the ones you aren't going to work on and use the one. This will utlimately speed up your build times for the configs, but you'll have to take the hit of the initial full build.
CCC solved so far: 2 (including a Hard One!)
|
|
|
|
|
Cheers mate!
keefb wrote: Rather than unloading unneeded projects, is setting them not to build under the particular configuration an option?
It depends on the size of your projects mate, some of mine are massive (on par with my body weight actually!)
keefb wrote: You can build all the projects once per config, then disable the ones you aren't going to work on and use the one. This will utlimately speed up your build times for the configs, but you'll have to take the hit of the initial full build.
Another thing that I've done is that I've altered the output path of all the built binaries to a generic "bin" folder. This way, I don't 19 copies of a particular dll, with the only difference being the build configuration (binary wise, they'd be identical).
If the post was helpful, please vote, eh!
Current activities:
Book: Devils by Fyodor Dostoyevsky
Project: Hospital Automation, final stage
Learning: Image analysis, LINQ
Now and forever, defiant to the end.
What is Multiple Sclerosis[ ^]?
|
|
|
|
|
Hi all,
I have developed a VSTO add-in for MS Outlook 2007, which works perfectly within the 2007 version of Outlook, but the problem is that when I try and run it within the 2003 version of Outlook, it doesn't seem to work. Does anyone perhaps know of a site that can offer me with a solotion or perhaps know how I can overcome this issue?
Many thanks in advance.
Kind regards,
The only programmers that are better C# programmers, are those who look like this -> |
Programm3r
My Blog: ^_^
|
|
|
|
|
Programm3r wrote: when I try and run it within the 2003 version of Outlook, it doesn't seem to work.
This is not very descriptive. What exactly happens with the 2003 version?
I would suggest you take a look on the MSDN site for further information about using the Outlook interfaces.
|
|
|
|
|
|
|