|
What kind of differances are those? Can you give me an example. Not sure, I haven't noticed anything special.
thanks
|
|
|
|
|
Any difference that could break the code. Anything written outside the normal structure of the page. Anything that could make the header tag inoperable.
For an example anything at all written before the doctype tag would make the browser ignore it.
---
b { font-weight: normal; }
|
|
|
|
|
<%@ Page language="c#" Codebehind="ProfitDisplay.aspx.cs" AutoEventWireup="false" Inherits="GlobalNetwork.ProfitDisplay" smartNavigation="True"%>
script functions go here
mmLoadMenus();
On top Is an example of the page structure I have. As you notice I have some stuff before the doctype.I tried to put that under the doctype but did not see any differance. Do you see something special I do not see?
Naji
-- modified at 18:27 Monday 3rd July, 2006
|
|
|
|
|
No, no... The page that is produced, the html code that is sent to the browser. Use "View source" in the browser.
---
b { font-weight: normal; }
|
|
|
|
|
I see the following function being added to the page if I look at the view source:
The code on top is added to the body, but I do not see anything above doctype.
I figured it out I set smartnavigation to false and it did solve the problem!!!
Thanks Guffa
-- modified at 14:58 Tuesday 4th July, 2006
|
|
|
|
|
Hi guys,
I am a newbie in C# and I need your help please.
I have 2 windows forms and I am trying to pass a value from one form to another, in my first form I have:
m_nSessionId=551;
SessionID(m_nSessionId);
public long SessionID(long SID)
{
string test=SID.ToString();
MessageBox.Show(this, test);//This worked and did show me 551
return SID;
}
How do I get the SID value in my other class (Windows form)
I tried this in my other class but keep getting a zero value.
ProcessFile session=new ProcessFile();
session.SessionID(m_nSessionId);
Please Help!!!!!
sasa
|
|
|
|
|
SASA_1 wrote: I have 2 windows forms
No you don't. You have two classes that derive from "Form". So the actual question is "how do you pass values from one class to another"? Since you are the author of the classes you can do that any way you want. Use properties or methods or events or a combination of them, it's up to you! Isn't that cool?
|
|
|
|
|
Easy would be, if the Form1 creates the Form2.
Form1 code.
private Form2 f2;
//Constructorcode
f2 = new Form2();
f2.Show();
Than you can set every public Method or Variable (public int m_nSessionId) from your Form1.
this.f2.m_SessionId = 551;
or
this.f2.SessionID(551);
All the best,
Martin
|
|
|
|
|
Thank you Martin for your reply. I tried what you suggested and no luck.
Here is what I have after your suggestion:
Form 1
m_nSessionId=processObj.SessionID;
if(m_nSessionId!=-1)
{
string test=m_nSessionId.ToString();
MessageBox.Show(this,test);//This does show the value that I want
ProcessReport report = new ProcessReport();
report.ShowDialog();
report.SessionId=m_nSessionId;//Your suggestion
pnlProgress.Visible=false;
}
Form 2
When I try to output SessionId it shows 0
string test=SessionId.ToString();
MessageBox.Show(this,test);
Please help!!!
sasa
|
|
|
|
|
sasa,
ShowDialog is a synchronous function, which means it will only return and execute code after it when the form is closed. Using this function to display the form is a good idea if you want to force the user to respond to that form before continuing manipulation of the main form. If you are using this function, however, you will need to set all your variables before you call that function, like this:
report.SessionId = m_nSessionId;
report.ShowDialog(); Your code which you have does it in the reverse order, which is why it does not work.
Now Martin had suggested setting the variables after the call to the function called Show , which actually displays the form and returns immediately. His code works fine because the call to Show returns immediately.
Depending on whether you want the user to be able to manipulate both forms at the same time or whether you want to force the user to manipulate only the form you display until the user closes it, you can use Show or ShowDialog . If you use the latter, you will need to set the variables before the call to that function.
Hope that helps!
Sincerely,
Alexander Wiseman
|
|
|
|
|
Hi Alexander;
Thank you for your suggestion, I learned something new today.
But, my code still gives me a 0 value for m_nSessionId; when the variable has a value. In my Form 2, All I have is Public SessionId; and then I have a load function which manipulates data based on the m_nSessionId. With a value of 0 it doesn't do anything.
Please help!! and please don't mind my ignorance.
sasa
|
|
|
|
|
Sorry I must have misunderstood something. When you say that you still have a value of 0 for m_nSessionId , where in the code do mean this? Inside any code of Form2, you should be accessing SessionId , the public variable which you set equal to m_nSessionId before you call ShowDialog . Inside the load function (which I presume is on Form2), you should be accessing the SessionId variable, not m_nSessionId , which I thought belonged to Form1.
Could you clarify that, and maybe post the section of your Form2 loading code that tries to look at the session ID?
Sincerely,
Alexander Wiseman
|
|
|
|
|
Hi Alexander;
Thank you for helping me with this.
Here is the code snippet:
Form1.
m_nSessionId=processObj.SessionID;
if(m_nSessionId!=-1)
{
//string test=m_nSessionId.ToString();
//MessageBox.Show(this,test);//m_nSessiodId at this point is holding a value.
ProcessReport report = new ProcessReport();//creating form2 object and assigning m_nSessiodId to public variable
report.SessionId=m_nSessionId;
report.ShowDialog();
}
form 2
//creating SessionId variable
public long SessionId;
//Function in form 2 where I need the value of m_nSessionId from form1
private void LoadReport()
try
{
if(SessionId!=-1)
{
cryShared.TableLogOnInfo tbLogInfo=null;
CBResult rpt=new CBResult();
foreach ( cryEngine.Table tb in rpt.Database.Tables)
{
tbLogInfo=tb.LogOnInfo;
tbLogInfo.ConnectionInfo.ServerName=m_sServer;
tbLogInfo.ConnectionInfo.DatabaseName=m_sDBName;
tbLogInfo.ConnectionInfo.UserID=m_sUserId;
tbLogInfo.ConnectionInfo.Password=m_sPassword;
tb.ApplyLogOnInfo(tbLogInfo);
tb.Location="\"" + m_sDBName+".dbo.\"" +
tb.Location.Substring(tb.Location.LastIndexOf(".")+1);
}
cryShared.ParameterValues pvs=new cryShared.ParameterValues();
cryShared.ParameterDiscreteValue pv=new cryShared.ParameterDiscreteValue();
pv.Value=SessionId;
pvs.Add(pv);
rpt.DataDefinition.ParameterFields["Ad_Parameter1"].ApplyCurrentValues(pvs);
crystalReportViewer1.ReportSource=rpt;
}
}
Thank you again for all your help.
sasa
|
|
|
|
|
Well your code looks fine, so the only thing I can think of is that LoadReport is being called before you set the session ID - that is, it is being called from the constructor of form 2. If you are calling LoadReport from the constructor of form 2, then SessionId will not have the proper value in it, because you are setting its value only after the constructor is finished.
So the main question is: when are you calling <ocde>LoadReport in Form2?
If you are calling it in the constructor of Form2, then I recommend instead that you make an event handler for the Form.Load event and in that, call the function LoadReport .
Let me know if that gets you anywhere.
Sincerely,
Alexander Wiseman
|
|
|
|
|
Thank you again. I am calling it from the constructor and with that said, I am sorry man but how do I create and event handler? Please give an example?
Thanks again
sasa
-- modified at 22:33 Wednesday 28th June, 2006
|
|
|
|
|
Hi Alexander;
I created an event handler and got it to work. Thank you man, I really really appreciate your help. You are my guru.
sasa
|
|
|
|
|
Excellent! I'm glad it worked out for you.
Sincerely,
Alexander Wiseman
|
|
|
|
|
You didn't do what Martin suggested and so it fails because in this:
SASA_1 wrote: Form 2
When I try to output SessionId it shows 0
string test=SessionId.ToString();
MessageBox.Show(this,test);
You're assuming that "SessionID" from Form 1 is global and it's not.
What you're not entirely clear on is the architecture on how Form 1 and Form 2 are actually created. Do they both get created in Form 0 or does Form 2 get spawned from Form 1? How are they created?
That will dictate how you pass the data between the two. Generally the easiest way is through the use of a public variable created at a level that makes it global.
Mike Poz
|
|
|
|
|
Sorry to meddle!
But why don't you use the events?
Try this:
1)Create an EventArgs class.
2)A delegate.
3)An event of type your delegate.
4)Raise the event and pass the SessionId as the EventArgs Property.
Read this article and contact me if you had any problem.
EventArgs Class
Sojaner!
|
|
|
|
|
hi guys
how should I load a database into a Dataset object.
when loading from a DataAdapter i should use an SQL command. what if when i want to load all tabless and reltions and ... in a Dataset?
i want to make a program to load all sort of databases (even without knowing the name of the tables)
thx guys
|
|
|
|
|
Try to see this:
http://msdn2.microsoft.com/en-us/library/bh8kx08z.aspx
|
|
|
|
|
Sorry for posting this again. What I want to do is save the state of my windows form. What I heard so far XMLSerializing is a good way to go. If I got it right: Due to containing interfaces many classes can't be serialized. So the Form itself can't be serialized. So I need to serialize elements of this form. These are Controls (Labels and UserControls). If the above applies, I see no way doing so, except serializing lets say the Text of a Label and then later deserialize the string, create a new Label and set the Text to the deserialized string, which is a really bad situation. Is there any better way?
Thanks for helping me out.
|
|
|
|
|
You don't need to recreate the controls dynamically. Just catalog the information you need to save, organize it into some XML format, then use XSD.exe or something like Skeleton Crew[^] to generate an XML serializable model.
Then on form load, read the XML file and use the resulting model to update the controls affected by your information, and on form closing fill a model with your information and serialize it out to the XML file.
You can restrict your data to the text in text fields, or the form's size, or whatever you want to persist. Keep it simple.
Try code model generation tools at BoneSoft.com.
|
|
|
|
|
Greetings!
I'm having a spot of trouble involving the saving and restoring of UserControl states on a form and was wondering if somebody could help me figure it out.
Here's some background:
1. I have 11 instances of a UserControl on a form.
2. The UserControl has, among others, two boolean properties "Mute" and "Solo".
3. Everytime the Solo property of a control goes "true", all the OTHER controls are disabled and only the "soloed" control is active. The Mute property of any control other than the soloed control may not be changed while the solo is active.
And here's the problem:
1. One or more UserControls may be muted at the time that a particular UserControl is soloed.
2. Upon "unsoloing" the soloed control, the previously muted controls should remain muted.
Here's my approach so far and some pseudocode:
1. I have two events - a SoloHandler and a MuteHandler.
2. I'm assuming that the "state memory" code needs to go into the solo handler.
3. Pseudocode
<br />
if (sender.Solo)<br />
{<br />
<br />
}<br />
else <br />
{<br />
}<br />
AND FINALLY... Here's my question to you!
How do you suggest I go about saving the state?
Should I use an array and store references to the Controls in the collection using the GetChildIndex property?
Is there another way that is more elegant and is easier to code?
Thanks!
|
|
|
|
|
I hope I got everything!
Here is what I would do:
//Create an additional boolean Property "BlockMute" in your class "YoureUserControlClass"
public bool BlockMute
{
get
{
return _blockmute;
}
set
{
if(value!=_blockmute)
{
_blockmute = value;
}
}
}
public bool Mute
{
get
{
return _mute;
}
set
{
if(value!=_mute)
{
if(Blockmute== false)
{
_mute = value;
}
}
}
}
//SoloHandler
{
YoureUserControlClass actc = sender as YoureUserControlClass;
foreach(object o in this.Controls)
{
if(o is YoureUserControlClass)
{
YoureUserControlClass c = o as YoureUserControlClass;
if(actc.Solo == true)
{
if(o != sender)
{
c.Enabled = false;
c.Solo = false;
c.BlockMute =true;
}
else
{
c.Enabled = true;
c.BlockMute = false;
}
}
else
{
c.Enabled = false;
c.BlockMute = false;
}
}
}
}
All the best,
Martin
-- modified at 15:59 Wednesday 28th June, 2006
|
|
|
|