|
Rank: Member Groups: Member
Joined: 3/19/2008 Posts: 12
|
Dear Techical Support,
I tried to evaluate your product but unfortunately I've encountered unexpected problem. It says: "File or assembly name EO.Web, or one of its dependencies, was not found."
I'm 100% sure that the EO.Web.dll (ver: 5.0.43.1) is in the bin folder along with my other working DLLs.
Here's the line where the problem occurs : Line 2: <%@ Register TagPrefix="eo" Namespace="EO.Web" Assembly="EO.Web" %>
I have this also in the aspx page:
<form id="Form1" method="post" target="_self" enctype="multipart/form-data" runat="server"> <script src="~/eo_control_include.aspx?ctrl=Demo.ascx" type="text/javascript"></script>
No reference in my code behind.
By the way I'm using ASP.NET Ver 1.1.4322.573.
Did I miss anything? Any help is highly appreciated.
Thanks, mhm
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Hi,
I can't think of any other reasons that it won't work except that you might be looking at the wrong bin directory or do not have enough permission to access the file (remember ASP.NET worker process uses a separate user account than your interactive account). Does it work locally? Does the sample project work?
Thanks
|
|
Rank: Member Groups: Member
Joined: 3/19/2008 Posts: 12
|
Thanks for the prompt reply.
I totally agree with you. Nevertheless I have only one bin folder where my other DLLs are working fine. I am also working locally & testing the sample project but to no avail.
Is there any other possible cause?
Thanks.
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Hi,
The sample project should work out of the box. Try to run the Menu Builder in standalone mode (from your Start Menu) and see if you get any error. If that doesn't run either, then the file might be corrupted and you probably want to try reinstalling our controls.
Thanks
|
|
Rank: Member Groups: Member
Joined: 3/19/2008 Posts: 12
|
By the way I'm using WebMatrix cause I have no Visual Studio installed in my PC. I'm certain that this could not be the cause. What I did was build a sample menu from the EO.Web Menu Builder & the design seems to work - cool. Then I proceed using the Demo.ascx that comes along with your product to see if everything works by default. Unfortunately I'm stuck.
Thanks
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
WebMatrix won't have anything to do with not being able to run the samples. We can setup a web meeting to take a look on your machine tomorrow. Would you be OK with that?
|
|
Rank: Member Groups: Member
Joined: 3/19/2008 Posts: 12
|
ok. cu.
|
|
Rank: Member Groups: Member
Joined: 3/19/2008 Posts: 12
|
By the way I just remember I have to do some urgent things tomorrow. Let's schedule it some other day. I'll post again here once I'm ready. Thank you for your prompt replies.
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Sure. Not a problem. Just let us know when you are ready.
|
|
Rank: Member Groups: Member
Joined: 3/19/2008 Posts: 12
|
Hi I'm back. I was out of the country for a week.
Back to my problem, I found out that the cause was the incorrect location EO.Web.dll. It's working now and managed to create a menu from the database. thanks.
Upon further testing, I've encountered the following difficulties:
1.) How to disable CursorHand when onhovering on MenuItem without link? 2.) How to wrap the text of MenuItem (marked as text.html) within the specified text length? 3.) How to specify the DataField for different levels of menu? Some MenuItems in different levels has to be set as NavigateURL (not only the lowest menu level).
Thanks for your support.
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Hi, Thanks for the update for the previous question. As for your new questions: 1. This topic should help you get familiar with how style works and how to change cursors: http://www.essentialobjects.com/ViewDoc.aspx?t=Menu%2fStyleAndAppearance%2fStylesCommonTasks.html2. To wrap menu item text, you need to set the MenuItem.Text.NoWrap to False and also specify a fixed Width value for its parent item group (The parent item's SubMenu object); 3. You can do it through the menu's DataField property or Depth property on DataBinding object. This page should give you more details: http://www.essentialobjects.com/ViewDoc.aspx?t=MenuCommon%2fDataBinding%2fpopulate_table.htmlAll the help contents are also available on your local drive as a .chm file, it will be faster than the online version. Thanks
|
|
Rank: Member Groups: Member
Joined: 3/19/2008 Posts: 12
|
Hi,
This is related to the 1st question: Changing Cursor
The link you have provided shows only how to change the cursor from hand to pointer. What I wish to accompish is to validate (preferably during rendering) if the MenuItem has no link then change the cursor to pointer. Otherwise, if the MenuItem has link then change the cursor to hand. The MenuItem that has no link should no be clickable as well.
Thanks.
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Hi, The link we provided shows how to change cursor, not just how to change the cursor from hand to pointer. We use that as an example because that's what most people would be interested and browsers handle hand cursor differently. But it clears says to "Set menu group cursor", you should "Use cursor with MenuGroup.Style". That's what's important. So it all comes down to this: MenuGroup.Style is where you would set the cursor. You can set it by code (you can not do it during Rendering, it's too late; You can do it right after you populated the menu). For example, you can do:
Code: C#
Menu1.Items[0].SubMenu.Style.InlineStyle["cursor"] = "move";
Or you can also set it in your css class. The following code assume you have a css class "your_css_class" that set cursor to something:
Code: C#
Menu1.Items[0].SubMenu.Style.CssClass = "your_css_class";
The point is, we tell you which switch is the one you would be using, but when to flip that switch would be totally up to your program logics. Hope this helps. Thanks
|
|
Rank: Member Groups: Member
Joined: 3/19/2008 Posts: 12
|
Hi,
Your points were taken. Nevertheless, there must be a way to specify whether an Item is clickable or not during rendering. Just like ASPX Calendar Control where if I say e.Day.IsSelectable = True then that particular day's cursor is automatically changed to hand where user can click. And... not to forget, the setting of "e.Day.IsSelectable" is done during CalendarDayRender.
Back to my 3 problems which hold me to purchase your product, let me show you my codes (the modified version of your Demo example).
ASPX page: <EO:MENU id="Menu1" runat="server" ControlSkinID="None" TargetWindow="_self" Width="300px" NoWrap="False"> <TOPGROUP style-csstext="background:url('../../images/gradation_blue3.gif');color:#000000;border-left-color:#e0e0e0;border-left-style:none;border-left-width:0px;border-right-color:#e0e0e0;border-right-style:none;border-right-width:0px;border-top-color:#e0e0e0;border-top-style:none;border-top-width:0px;border-bottom-color:#e0e0e0;border-bottom-style:none;border-bottom-width:0px;cursor:hand;font-style:normal; font-variant:normal; font-weight:lighter; font-family:Tahoma;font-size:11px;"></TOPGROUP> <LOOKITEMS> <EO:MENUITEM HoverStyle-CssText="color:#F7B00A;padding-left:5px;padding-right:5px;" ItemID="_TopLevelItem" NormalStyle-CssText="padding-left:5px;padding-right:5px;"> <SUBMENU style-csstext="background:url('../../images/menu_background.gif');color:#000000;border-right: #e0e0e0 1px solid; padding-right: 3px; border-top: #e0e0e0 1px solid; padding-left: 3px; font-size: 11px; padding-bottom: 3px; border-left: #e0e0e0 1px solid; cursor: pointer; cursor: hand; padding-top: 3px; border-bottom: #e0e0e0 1px solid; font-family: Tahoma; background-color: #f7f8f9" offsetx="-3" shadowdepth="0" offsety="3" itemspacing="5"></SUBMENU> </EO:MENUITEM> <EO:MENUITEM ItemID="_Separator" NormalStyle-CssText="width: 1px; height: 1px; background-color: #cb3e00" IsSeparator="True"></EO:MENUITEM> <EO:MENUITEM HoverStyle-CssText="background:url('../../images/menu_foreground.gif');color:#000000;padding-left:5px;padding-right:5px;" ItemID="_Default" NormalStyle-CssText="padding-left:5px;padding-right:5px;"> <SUBMENU style-csstext="background:url('../../images/menu_background.gif')border-right: #e0e0e0 1px solid; padding-right: 3px; border-top: #e0e0e0 1px solid; padding-left: 3px; font-size: 11px; padding-bottom: 3px; border-left: #e0e0e0 1px solid; cursor: hand; color: #000000; padding-top: 3px; border-bottom: #e0e0e0 1px solid; font-family: Tahoma; background-color: #f7f8f9" offsetx="0" shadowdepth="0" offsety="0" itemspacing="5"></SUBMENU> </EO:MENUITEM> </LOOKITEMS> </EO:MENU>
Code Behind -----------
Sub Page_Load(Sender As Object, E as EventArgs) Dim mainDs As DataSet = CreateDataSet() Menu1.DataSource = mainDs Menu1.DataFields = "Level1_Description|Level2_Description|Level3_Description" Dim dataBinding As New EO.Web.DataBinding() dataBinding.Depth = 2 dataBinding.DataField = "Website" dataBinding.Property = "NavigateUrl" Menu1.Bindings.Add(dataBinding) Menu1.DataBind() End Sub
Private Function CreateDataSet() As DataSet
'Note WebSite Field is in the MenuLevel3 table.
Dim dsMenu As New DataSet() Dim qry As string Dim cmd As SqlCommand Dim daMenu As SqlDataAdapter Try Dim con As New SqlConnection(ConfigurationSettings.AppSettings("DatabaseConnection")) con.Open() qry = "SELECT * FROM MenuLevel1 ORDER BY Level1_ID" daMenu = New SqlDataAdapter(qry, con) daMenu.Fill(dsMenu, "MenuLevel1")
qry = "SELECT * FROM MenuLevel2 ORDER BY Level2_ID" daMenu = New SqlDataAdapter(qry, con) daMenu.Fill(dsMenu, "MenuLevel2")
qry = "SELECT * FROM MenuLevel3 ORDER BY Level3_ID" daMenu = New SqlDataAdapter(qry, con) daMenu.Fill(dsMenu, "MenuLevel3")
'Define relationship Dim rlMenu1 As DataRelation = dsMenu.Relations.Add( _ dsMenu.Tables("MenuLevel1").Columns("Level1_ID"), _ dsMenu.Tables("MenuLevel2").Columns("Level1_ID")) rlMenu1.Nested = True
Dim rlMenu2 As DataRelation = dsMenu.Relations.Add( _ dsMenu.Tables("MenuLevel2").Columns("Level2_ID"), _ dsMenu.Tables("MenuLevel3").Columns("Level2_ID")) rlMenu2.Nested = True
con.Close() Return dsMenu Catch Err As Exception lblMessage.Visible = "True" lblMessage.Text = Err.ToString() End Try End Function
--------- End of Code
Now back to my questions. I hope you could point me to the right direction. 1.) Changing of Cursor: Are you saying that I have to set the cursor (whether pointer or hand) of each MenuItem manually? hmmmmm??????????? Otherwise, how could I loop through all the MenuItems and set the Cursor?
2.) Wrapping MenuItem.Text: I've insert the NoWrap="False" under EO:MENU but I don't know where to specify the Fixed Width Value.
3.) Provide link to GroupMenu (higher level): I've seen your example but all the URLs are under Level 3 (lowest level).
Thanks in advance for your help.
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Hi,
As for your questions:
1. Yes. That's what you will be doing. Having different cursors based on different condition is very rare (in fact this is the first time we hear that). So you are out of luck there. You will need to use Menu.Items and MenuItem.SubMenu.Items to walk through all menu items. You can use look items to save some work but it probably cost more time unless you know how it works pretty well;
2. Again. You will need to do this specifically on the menu group you want to wrap, for example:
Menu1.Items[0].SubMenu.Width = 100;
or do it on all menu group if you need to.
3. Check DataBinding's Depth property;
This is no such concept as clickable for a menu item. All items are clickable unless disabled (In another word, you can set Disabled to true so that it can not be clicked, but then you will need to set DisabledStyle). The difference is whether you do nothing after it is clicked or actually does something (execute script, navigate to another page, raises server event) etc.
Our menu is a very high end menu with a lot of options. So the best way for you is to start with the documentation and get closer step by step. A lot of things are explained thoroughly in the document and if you go over it you will get a much clearer overall picture of how it works. We believe that’s the best way because you are still too far off on many details, such as adding NoWrap=”false” to the Menu. Nobody has told you it’s a property on the menu --- in fact it is not, so that won’t work. This kind of things are all in the documentation.
Thanks for understanding!
|
|
Rank: Member Groups: Member
Joined: 3/19/2008 Posts: 12
|
Hi,
I do understand.
In fact I have a full working JavaScript menu addressing those questions I've previously asked. Unfortunately I can't pack the Business Logic into a DLL (for security purposes). Perhaps I could find a way to do it through Assembly but I have to start from square one - reading lots of references.
Now here comes your product . I thought I could make a head start by just changing the settings. However what you are suggesting is to read through all your documentations. Hmmmm.. back to square one again. Eventually I'll do that, but not at this time. I just need a full working & secured database-driven menu. Congratulations! your product seems to be a promising one.
If you could provide me a modified version of the source code I've posted here (addressing my 3 questions), of course at the earliest, I will surely purchase your product. At least the menu for a start.
Thanks for your support.
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Hi,
Thanks for understanding. We don’t mind to provide samples to demonstrate general ideas as a supplement of our documentation, but we generally do not provide code based on specific client business logic. The reason is simple: We have limited resources and we are here to support our product, not our clients' project. In another word, we do our best to help you understand our product, but we do not code for our client, not even for paid users. Those are something we would love to but simply can not afford to do. Sorry about that!
Thanks
|
|
Rank: Member Groups: Member
Joined: 3/19/2008 Posts: 12
|
Hi,
Actually, what I really need is an example how to use your controls as I didn't see any concrete examples in the accompanying documentation which are related to my questions except for the databinding of which there is also no example of singlemenu mutiple-databinding.
Anyhow, I managed to solve my question #3 - Provide link to GroupMenu (higher level).
Now I'm working on the question #2 - Wrapping MenuItem.Text. In the ASPX page, I've inserted Text-NoWrap="False" in the MenuItem and set Width="100" in the TopGroup as well as tried it in the SubMenu but to no avail - still it's not wrapping. Did I miss something?
Thanks
|
|
Rank: Member Groups: Member
Joined: 3/19/2008 Posts: 12
|
Hi,
FYI: I solved my question# 2 - Wrapping MenuItem.Text.
Now to question #1 - Changing of Cursor: First, have you noticed that on this page (http://www.essentialobjects.com/Forum/Default.aspx?g=postmessage&t=1245&f=3) the groupmenu named "Support" has a cursor hand when onhover yet once you click it nothing happends. Would it be nice if rather than the cursor hand, you replace it with the normal pointer? THIS IS WHAT I'D LIKE TO ACCOMPLISH.
Thanks
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Hi,
Thanks for the update. For the cursor issue we will still ask you to read the document. Everything is clearly explained there. We do not offer specific samples for situations like "I just want this and I really do not care about anything else".
To be straight forward to you, what you are doing is like calling your cable TV's customer service and ask them that "I just want to tune in the sport channel, but I do not want to read the manual because I do not care about anything else". Yet tomorrow you might call them and ask them to tell you how to tune in a news channel. To such request our answer is a straight no.
On the other hand, if you have read the manual, but are confused about certain steps, we would be happy to help. The reason that we ask you again and again to read the document about this issue is because in order to show you how to do it, you need to understand a number of things about our menu --- all of which are explained in the document and you do not appear to have looked at or understand any of them.
In short, the document is there for you to read. And our support is not here to be a substitute of that.
Hope this clarifies our position.
Thanks
|
|