|
Where would I go about placing this code then?
I am wanting to use this if the user checks the confirmation page..their information is incorrect they can go back to the previous page and correct their information.
modified on Wednesday, March 26, 2008 10:34 AM
|
|
|
|
|
you could put it in the c# if you like, put it in the page load maybe
|
|
|
|
|
Currently i m using ASP.NET with C# (.net 2005, 2.0 framework)
http://www.dynamicdrive.com/dynamicindex1/chrome/index.htm
from the above like i download the menu and implemented.
but the thing is, when i put the dropdown menu bar by separatiing in <frames>,
the menu is not getting dropdown...
how to overcome it? help me plz.. ITS URGENT!"
|
|
|
|
|
First of all, why do you scream in your subject
Second... Every post here is urgent... ofcourse...
Third... Why use frames?? Use tables instead and you're done...
|
|
|
|
|
I wouldnt use frames
Use div tags to do your layout
|
|
|
|
|
acutally i m trying to split the screen into two so that the top frame may have the menu according to the login's (user,validator,supervisor) all these three users have different menubars. the bottom frame will contain the pages.
|
|
|
|
|
The other responses are correct in that your problem appears to stem from your use of frames. For all intents and purposes, the boundaries of a frame are treated just like a browser, from the content's point of view. What this means is that you will never be able to have your menus extend outside of their containing frame. Because the menu is contained within the frames, when it drops down, it must do so in the same frame. I would venture to guess that the containing frame is too small to display the drop down content.
It would seem to be that your best option is to reconsider your use of frames. I understand that you are attempting to display a different menu depending on the role that the current user holds. Is there a reason that you are unable to implement that decision on the server-side?
For example, one thing that you may consider is to create each version of your menu as a user control (using div tags, not frames) and dynamically loading that based on your user's role. Lets assume that you left a Placeholder control in the markup where you wanted to inject your menu. The code would look something like:
MyMenuControl myMenu = null; if (this.User.IsInRole("Admin")) { myMenu = (MyMenuControl)LoadControl("~/menus/adminMenu.ascx"); } else if (this.User.IsInRole("SomeRole")) { myMenu = (MyMenuControl)LoadControl("~/menus/someRoleMenu.ascx"); } else { myMenu = (MyMenuControl)LoadControl("~/menus/userMenu.ascx"); } this.MenuPlaceHolder.Controls.Add(myMenu);
Hope that helps.
--Jesse "... the internet's just a big porn library with some useful articles stuck in." - Rob Rodi
|
|
|
|
|
Thaks a lot for ur kind reply jesse. i try to implement these things. i had some doubts too. can u help me plz?
1. this "MyMenuControl" specifies which control. i give this name to the place holder. but error is occuring as... "'project1.Testpage.MyMenuControl' is a 'field' but is used like a 'type'"
2. whats the exact process of isinrole operation. i refer many sites. i cant get the exact answer. help me.
3. The thing exactly i required is... i capture the status of the logins (user=1 and validator=2 and admin=3) and store it in the "int_status" variable. if int_status=1, the adminmenu.ascx is to get activate.
Help me ... thanks in advance.
|
|
|
|
|
1) In my example, MyMenuControl was the base type that I used to derrive my different menu controls from. When you load a control using the LoadControl method, it is returned as type object . You will need to cast it before putting into a placeholder. If you did not have a common base class for your menu, use UserControl for your cast.
2) IsInRole is the built-in mechanism for determining whether the user has a given security role in your application, when using the standard ASP.NET role-based security model. If you are interested in more information, please reference a link or two from this Google[^] search.
3) You answered your own question here. Test the value of your int_status variable. If it has the value you desire, load your adminmenu.ascx control. Once loaded, add the adminmenu.ascx control to the Controls collection of one of the objects on your page.
If you're still struggling, take another look at my example. It demonstrates the core operations for this. Simply replace the if condition with your int_status test, replace MyMenuControl variable/cast with the type of your adminmenu.ascx , and replace MenuPlaceHolder with your desired menu container.
Hope that helps.
--Jesse "... the internet's just a big porn library with some useful articles stuck in." - Rob Rodi
|
|
|
|
|
Thanks a lot JESSE..i implemented.. now only i m looking how its easy. but without you, i cant achieve.... "KNOWN IS DROP. UNKNOWN IS OCEAN"
if (TextBox2.Text == "1")
this.MenuPlaceHolder.Controls.Add((UserControl)LoadControl("admin_header.ascx"));
else if (TextBox2.Text == "2")
this.MenuPlaceHolder.Controls.Add((UserControl)LoadControl("User_Header.ascx"));
else if (TextBox2.Text == "3")
this.MenuPlaceHolder.Controls.Add((UserControl)LoadControl("Validator_Header.ascx")); // where MenuPlaceHolder is the id of PlaceHolder
|
|
|
|
|
Happy to help, John. I'm glad to hear that its working.
--Jesse "... the internet's just a big porn library with some useful articles stuck in." - Rob Rodi
|
|
|
|
|
hai to everyone and Jesse....!
can i know how to achieve the overlapping concept in menu?
or where can i find the FREE MENU's, so that i can generate it and the
overlapping is to be avoided.
in the below link, the overlapping is avoided. but i cant populate the sub menus....
"http://www.dynamicdrive.com/dynamicindex1/chrome/index.htm"
help me - KARAN
|
|
|
|
|
John Sundar wrote: ITS URGENT!
How impolite
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
Can anyone please show me how to create the following table (given in markup) in code behind ?
<div style="text-align: left">
<table border="0" cellpadding="1" style="position: relative">
<tr>
<td rowspan="4" style="width: 100px">
</td>
<td style="width: 100px">
</td>
</tr>
<tr>
<td style="width: 100px">
</td>
</tr>
<tr>
<td style="width: 100px">
</td>
</tr>
<tr>
<td style="width: 100px">
</td>
</tr>
</table>
</div>
As you can see, the cells in the left column are merged.
Thanks
WBeetge
|
|
|
|
|
Use a StringBuilder to build the string of HTML and then set the string as the Text of a Literal control.
|
|
|
|
|
Thanks, sounds easy.
I need to load other controls (images, text, hyperlinks etc) into different cells of the table.
Can I talk to the cells in the table after setting the string of a literal control or must I build the string with the controls embedded in the string for each record in the query result ?
|
|
|
|
|
why you are not creating table runtime using Table Class?
Best Regards
-----------------
Abhijit Jana
Microsoft Certified Professional
"Success is Journey it's not a destination"
|
|
|
|
|
If anyone can show me how to do that for the example table (left Column cells are merged) using the table, tablerow and tablecell objects, or any other method that will work, I will use that method.
|
|
|
|
|
|
You do this by building up the control tree using a Panel for the div and a Table , TableRow 's and TableCell 's for the table.
I have simplified this somewhat (mainly creating a simple method that generates the 100px cell and reusing that throughout) for the purpose of demonstration but here you go:
protected override void OnLoad(EventArgs e)
{
Panel panel = new Panel();
panel.Style.Add(HtmlTextWriterStyle.TextAlign, "left");
Table table = new Table();
table.CellPadding = 1;
table.Style.Add(HtmlTextWriterStyle.Position, "relative");
panel.Controls.Add(table);
TableRow row1 = new TableRow();
TableCell colRowSpan = this.Create100PixelCell("a");
colRowSpan.RowSpan = 4;
row1.Cells.Add(colRowSpan);
row1.Cells.Add(this.Create100PixelCell("b"));
table.Rows.Add(row1);
TableRow row2 = new TableRow();
row2.Cells.Add(this.Create100PixelCell("c"));
table.Rows.Add(row2);
TableRow row3 = new TableRow();
row3.Cells.Add(this.Create100PixelCell("d"));
table.Rows.Add(row3);
TableRow row4 = new TableRow();
row4.Cells.Add(this.Create100PixelCell("e"));
table.Rows.Add(row4);
this.placeHolder.Controls.Add(panel);
}
private TableCell Create100PixelCell(string someContent)
{
TableCell cell = new TableCell();
cell.Style.Add(HtmlTextWriterStyle.Width, "100px");
cell.Controls.Add(new LiteralControl(someContent));
return cell;
}
The line "this.placeHolder..." is an asp:PlaceHolder put into the markup where i want the dynamic content to be placed.
hope it helps.
|
|
|
|
|
Thanks J4amieC
That is exactly what I am looking for.
|
|
|
|
|
you're very welcome. Remember if you want events from any of these dynamically created controls you need to re-create them after postback. It gets tricky quickly.
|
|
|
|
|
Yes, I tried this by creating the table in a Web User control, and found that same problem.
But though it worked in Dev, I could not build the site with the control - all kinds of errors.
So, now I have to resort to a basic dynamic creation of this table.
|
|
|
|
|
Greate Solluation !!!!!
Do you have any answer of my last Question that i have post regarding TextBox?
Any kind of help !!!
Best Regards
-----------------
Abhijit Jana
Microsoft Certified Professional
"Success is Journey it's not a destination"
|
|
|
|
|
Well the problem with merging is that due to the fact that the cells has nothing in it the table just ignores it, therefore best way to prevent that is putting something in it like a label, textbox, etc. But if you would like to leave it blank then best option is insert a new line statement
"<br/>".
<!--Made the border to 2 to see the effect-->
<div style="text-align: left">
<table border="2" cellpadding="1" style="position: relative">
<tr>
<td rowspan="4" style="width: 100px">
<br/>
</td>
<td style="width: 100px">
<br/>
</td>
</tr>
<tr>
<td style="width: 100px">
<br/>
</td>
</tr>
<tr>
<td style="width: 100px">
<br/>
</td>
</tr>
<tr>
<td style="width: 100px">
<br/>
</td>
</tr>
</table>
</div>
Then you could try to do it in the code-behind with the feature of Response.Write("...html coding...."), i tried it with a picture
e.g.
This is adding a picture with a string from the database to a checkListBox collection
cblNames.Items.Add((string)readerSet["Nam"] + "<br/><img src=\"" + (string)readerSet["Nam"] + ".jpg\" height=100px width=150px/><br/>");
Any other questions be free to ask, i'll try my best...
|
|
|
|