Alpha Video Training
Results 1 to 5 of 5

Thread: How to update ViewBox data when used as the list's detail view (onClick event)?

  1. #1
    Member
    Real Name
    Maroine A.
    Join Date
    Apr 2010
    Location
    Rabat, Morocco
    Posts
    122

    Default How to update ViewBox data when used as the list's detail view (onClick event)?

    Hi,

    For a better understanding of what I'm trying to achieve, please refer to this video Using a ViewBox as the List's Detail View.

    So instead of using a hyperlink, It'd be better, for usability purposes, to click anywhere on the row to view the data related to that row in the ViewBox.

    I tried the following:

    In the onClick event in the list properties I added this
    Code:
    var vb = {dialog.object}.getControl('viewbox1');
    var rowNum = this.selection[0];
    
    vb.populate(this.selectionData[rowNum]);
    and on the viewbox I have its data source coming from the list and in the viewbox layout i am showing only one field for testing purposes.

    When I run the component & click on the first row in the list, the viewbox shows the associated data to that first row just like when I click on the hyperlink, but when I click the other rows in the list, it doesn't.

    I thought about using the list as a viewbox as well but I can't for so many reasons...

    Any ideas about how to update the associated data in the viewbox by clicking on any row in the list?

    Thanks

  2. #2
    "Certified" Alphaholic
    Real Name
    David Kates
    Join Date
    Apr 2008
    Location
    Unionville, ON
    Posts
    7,819

    Default Re: How to update ViewBox data when used as the list's detail view (onClick event)?

    You always want selectionData[0] because that's the currently selected row. By passing in a number other than 0 in rowNum, Alpha believes you're set up for multiple selections... and that you're going after the data, for example, in the 2nd selected row by using selectionData[1]. This results in a Javascript error which you'll see if you inspect the page.

    You only want to pass in the currently selected data... and you don't need to go after the row number to do that... it's always 0 because your List is set up for a single selection. The row number is the row number of the row(s) selected. For single row selection it's always 0... for multiple row selection it's zero based for the number of rows you've selected in the List control.

    This code will give you what you want...

    Code:
    {dialog.object}.panelSetActive('PANELCARD_2');
    
    var vb = {dialog.object}.getControl('viewbox1');
    vb.populate(this.selectionData[0]);

  3. #3
    Member
    Real Name
    Maroine A.
    Join Date
    Apr 2010
    Location
    Rabat, Morocco
    Posts
    122

    Default Re: How to update ViewBox data when used as the list's detail view (onClick event)?

    You only want to pass in the currently selected data... and you don't need to go after the row number to do that... it's always 0 because your List is set up for a single selection. The row number is the row number of the row(s) selected. For single row selection it's always 0... for multiple row selection it's zero based for the number of rows you've selected in the List control.
    I understand now how it is set up, I thought I had to go for the row number to get the data for the selected row. Thanks David
    It's working as expected & I'm hoping that you'd help me on this last simple yet complicated css rendering problem. I'd very much appreciate it.

    When I do a refresh of the viewBox on the onBlur event of a field in the list detail view (yes I do have a detail view for the list to edit the data besides the viewbox) the viewbox refreshes & the class that is applied for the selected item doesn't render.

    So I looked up the documentation & found this method: A5.ViewBox.setElementClass Method

    A5.ViewBox.setElementClass(value, className) where value is a string defined in the a5-value attribute for the element & the className is the CSS className to set the element's class.

    In the viewBox Layout, I have this:
    Code:
    <div class="[theme:listBox.base.item.className|{dialog.style}ListItem]"  a5-item="_AARow:AARow_attribute" a5-value="{Name}"><div>
    {Name}
    </div></div>
    In the Selected class name I have this:
    Code:
    [theme:listBox.base.item.selectedClassName|{dialog.style}ListItemSelected]
    I'm just testing here with red color. I think I'm referencing the viewbox item value wrong from the onBlur event of the field in the detail view.

    Code:
    var lObj = {dialog.object}.getControl('list1');
    lObj.updateListFromUXControls();
    var vb1 = {dialog.object}.getControl('viewbox1');
    vb1.setElementClass('{Name}','red');
    vb1.refresh();
    Basically the goal is be able to dynamically render HTML and css of the viewbox item as edits are made to the list's detail view, since more items will be added to the viewbox & that each item has its own html & css class.
    Last edited by Maroine81; 02-22-2017 at 06:35 AM.

  4. #4
    "Certified" Alphaholic
    Real Name
    David Kates
    Join Date
    Apr 2008
    Location
    Unionville, ON
    Posts
    7,819

    Default Re: How to update ViewBox data when used as the list's detail view (onClick event)?

    These things get a tiny bit complex because there are bits and pieces in a few places. If you could post a sample UX, static data, with your Detail View and Viewbox with code in place, then I'll have a look.

    However, I think some of your stuff isn't quite right. The ViewBox layout has a5-value="{Name}"... but this value gets replaced with the actual name. So, you're trying to perform a setElementClass on "John"... not Name. I believe it should be a5-value="Name".

    Next, .setElementClass replaces the class for Name... but the existing class is what makes the ViewBox look pretty. Unless you have already added your class named "red" to the item, then maybe use .addElementClass. Using the "Alpha" style... this works for changing Name red...

    Code:
    <div class="[theme:listBox.base.item.className|{dialog.style}ListItem]"  a5-item="_AARow:AARow_attribute" a5-value="Name"><div>
    {Name}
    </div></div>
    Code:
    var vb1 = {dialog.object}.getControl('VIEWBOX1');
    vb1.setElementClass('Name','listItem red');
    And ViewBox1 CSS of...

    Code:
    .red {
    color:#ff0000;
    }
    Notice also there is no refresh on the viewbox as that would just change everything back. I have a feeling that, overall, this isn't really what you want to do... but it does address some issues you have. I'm not sure how to pick up the existing class for the .setElementClass method... so I just checked to see how it rendered and then added it into the method.
    Last edited by Davidk; 02-22-2017 at 05:44 PM.

  5. #5
    Member
    Real Name
    Maroine A.
    Join Date
    Apr 2010
    Location
    Rabat, Morocco
    Posts
    122

    Default Re: How to update ViewBox data when used as the list's detail view (onClick event)?

    Since I'm trying to dynamically generate HTML for different field types, I found that the layout in the viewBox example (iOS style settings screen - shows a switch checkbox radiobutton in a list) with some client side templating is the closest to the functionality I'm aiming to obtain. Each field type (item) has its own class css html settings.

    I will work on this later since I moved to working on something else.

    Thank you David for your time & effort

Similar Threads

  1. File Update and Download using List and List Detail View
    By dantum in forum Mobile & Browser Applications
    Replies: 10
    Last Post: 09-01-2016, 10:49 PM
  2. Replies: 1
    Last Post: 06-07-2016, 05:38 PM
  3. Replies: 3
    Last Post: 06-10-2015, 07:29 PM
  4. Logging User Activity: Grid Row Data onClick to Detail View
    By bobbeckett in forum Application Server Version 11 - Web/Browser Applications
    Replies: 3
    Last Post: 03-25-2013, 02:44 PM
  5. Call onClick event of a button with Xbasic from Detail View
    By kingcarol in forum Application Server Version 10 - Web/Browser Applications
    Replies: 6
    Last Post: 09-12-2011, 01:57 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •