iSeller Commerce
iSeller POS Retail
iSeller POS F&B
iSeller POS Express
Crosslight
WebUI
ClientUI
What's New
Download Trial
Web Solution
Mobile Solution
Enterprise Solution
Custom Development
Blog
Community
Latest Development Blogs
ForumPostTopic
Browse By Tag
I've replied with the info in an attached document to the intersoftpt.com address.
I sent the email 2 days ago and yet to hear from anyone. What's the hold up?
I found out one more piece of info. It seems this problem crops up only when using the PlaceHolderManager. I was able to duplicate the problem with PlaceHolderManager but it works fine without it, i.e., stand-alone menu bar.
I also noticed, that in our case, we have a custom web control placed on our master page that does it's own event handling, i.e., implements RaisePostBackEvent from IPostBackEventHandler. When I remove this control, the menu handler is hit fine but when I restore this control, the problem crops up again.
I'm not sure what's going and why the event in one control seems to affect the WebMenuBar's assigned CommandClick handler, but I can duplicate this consistently.
I've duplicated this problem using your live sample "Sample Source - WebMenu Client-side Events" code. So you should be able to do the same. The only change I made to the JScript code is this:
if (cmd.SelectedMenuItem == null) { SetStatus ("OnClick : " + cmd.Name); } else { SetStatus ("OnClick : " + cmd.Name + ", MenuItem : " + cmd.SelectedMenuItem.Name); cmd.OnPostBackClick(); // I added this line to force a post back on child items }
In the code behind, I added a handler for CommandClick.
WebMenuBar1.CommandClick += new ISNet.WebUI.WebDesktop.MenuCommandClickEventHandler(MenuItemSelected);
Note that I tried this with both code behind and ASPX markup and neither would work. I also added the handler which never gets hit on post back.
protected void MenuItemSelected(object sender, ISNet.WebUI.WebDesktop.MenuCommandClickEventArgs e) { }
It's not so much what we do with the IDs, it's that they don't match against your row collection when retrieved from the grid. Our custom embedded check box uses LoadPostData to load it's checked/unchecked state. Here, it sets the server-side Checked and SElectedKeyValue properties from the hidden fields containing their respective values that are posted back in the postCollection. This part is handeled just fine even if the IDs are not in sequential order.
The problem occurs when we retrieve the rows from the grid after the data is posted back from an initial page load where the IDs were not in sequence. We call oGrid.RootTable.Rows to get the rows collection. We then iterate through it and get the check box control and check it's Checked property. The problem is, when we find the row with Checked as true, the data for that row does NOT match what the user selected.
The Rows collection contains the rows in sequence rather than what they actually were assigned on the initial load of the page. So if the page loaded with two Template columns, the check box would be assinged ctl00, ctl02, ctl04, etc. If the user selects the check box in the 3rd row (ctl04), then the Rows collection would return the data for row 5 since ctl04 would be for control 5 if the controls were created sequentially.
You can easily duplicate this from all the info I've given you. I've been able to do this with your grid with a simple check box.
I have a workaround in place for now but would prefer this work correctly since the workaround creates more overhead.
Okay, will do, thank you.
I have a lead on this problem and it looks like a bug in the low level code. The increments are related to other Templated columns that are on the grid. In addition to our check box template column, we also use a Template column for our boolean columns so we can display our own check mark, e.g., isActive would show a check mark for 1 and nothing for 0.
If there are 3 Template columns, then the control is incremented for each one which is not good because it's not treated the same way on post back as initially described in the first post. I went to our boolean template and added an ID and you can see below:
ctl00_ctl00_WebPaneManager1_ViewLeftSide_Content_View_PrismGridViewCarryingCost_ctl00ctl00_ctl00_WebPaneManager1_ViewLeftSide_Content_View_PrismGridViewCarryingCost_ctl00_PrismCheckBoxRowCheckerctl00_ctl00_WebPaneManager1_ViewLeftSide_Content_View_PrismGridViewCarryingCost_ctl01ctl00_ctl00_WebPaneManager1_ViewLeftSide_Content_View_PrismGridViewCarryingCost_ctl01_BoolColumnImagectl00_ctl00_WebPaneManager1_ViewLeftSide_Content_View_PrismGridViewCarryingCost_ctl02
I can see the above happening if the control wasn't assigned an ID, however, in our case above, I would expect it to behave like this:
ctl00_ctl00_WebPaneManager1_ViewLeftSide_Content_View_PrismGridViewCarryingCost_ctl00ctl00_ctl00_WebPaneManager1_ViewLeftSide_Content_View_PrismGridViewCarryingCost_ctl00_PrismCheckBoxRowCheckerctl00_ctl00_WebPaneManager1_ViewLeftSide_Content_View_PrismGridViewCarryingCost_ctl00_BoolColumnImagectl00_ctl00_WebPaneManager1_ViewLeftSide_Content_View_PrismGridViewCarryingCost_ctl01
How's the progress on providing these features coming along? Thanks.
That's not a very good solution. Why would we want to show the column when it's grouped? This can easily be implemented since you have to already know what the grouped column is in the grouped header row. It would make more sense to be able to click on any grouped header row and select ungroup. It's nice to have this available on the column, but we wouldn't want to see the column in group mode.
I'll try this and see how it works, but I'm sure management isn't going to like having that column shown. Thanks.
Wow, that's horrible. I hope they implement this soon.
Is there a client-side event property for the Reset on the Select Columns menu? Also is there a server-side handler for the Reset? Thanks.
or
Choose this if you're already a member of Intersoft Community Forum. You can link your OpenID account to your existing Intersoft Social ID.
Choose this if you don't have an Intersoft account yet. Your authenticated OpenID will be automatically linked to your new Intersoft account.
Enter your Wordpress Blogname