User Profile & Activity

Yudi Member
Page
of 259
Posted: April 20, 2015 2:44 AM

Sorry for any inconvenience this problem may have caused you.

The reported problem is reproducible in my local end and has been forwarded to WebScheduler development team for further investigation. The report is filed under ASPNET-161.
I'll keep you informed with any news I heard from the team regarding ASPNET-161.

Posted: April 20, 2015 1:39 AM

I haven't heard any news regarding ASPNET-136.

I may be able to help raising the priority for the reported problem to be included in May 2015 hotfix. Thank you for your patience and cooperation.

I need more information regarding the reported problem. I am willing to advise you further but in order to do so I would need you to elaborate on your specific scenario and possibly give me a running simple sample and step-by-step guide that I can use to observe the problematic behavior.

The requirement: to show "Delete" button (by swiping over a list item from right to left) in the "Multiple Delete" section under iOS 7, has been forwarded to Crosslight development team. The report is filed under CROS-803.

On iOS 7, swipe-to-delete no longer works when EditingOptions is set to AllowMultipleSelection. UITableView has AllowsMultipleSelectionDuringEditing property which defines whether more than one row can be selected while in editing mode. Ideally, what we need to do is only enable AllowsMultipleSelectionDuringEditing when the table view is in editing mode.

This is achieved by adding following snippet code in MultipleDeleteViewController.

public override void SetEditing(bool editing, bool animated)
{
    this.TableView.AllowsMultipleSelectionDuringEditing = editing;
    base.SetEditing(editing, animated);
}

After adding the above code, I found that swipe-to-delete works after user press "Edit" (on the top-right side) then press "Done". I"m sure the team will resolve this issue in fashion time. I'll keep you informed with any news I heard from the team regarding CROS-803.

Thank you for the information about the identity increment.

I modified WebService.cs file in WebGrid samples ([WebGridSamples]\App_Code\WebService.cs) by adding following methods.

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class WebService : System.Web.Services.WebService
{
    public WebService()
    {

        //Uncomment the following line if using designed components 
        //InitializeComponent(); 
    }

    ...

    [WebMethod]
    public List<Shipper> GetShippers()
    {
        NorthwindDataContext context = new NorthwindDataContext();
        context.DeferredLoadingEnabled = false;
        context.ObjectTrackingEnabled = false;

        return context.Shippers.ToList();
    }

    [WebMethod]
    public TransactionResult UpdateShipper(Shipper newObject, Shipper originalObject)
    {
        NorthwindDataContext context = new NorthwindDataContext();
        WebGridDataProvider<Shipper> provider = new WebGridDataProvider<Shipper>(context.Shippers.AsQueryable());
        
        return provider.Update(newObject, originalObject);
    }

    [WebMethod]
    public TransactionResult InsertShipper(Shipper newObject)
    {
        NorthwindDataContext context = new NorthwindDataContext();
        WebGridDataProvider<Shipper> provider = new WebGridDataProvider<Shipper>(context.Shippers.AsQueryable());

        return provider.Insert(newObject);
    }

    [WebMethod]
    public TransactionResult DeleteShipper(Shipper originalObject)
    {
        NorthwindDataContext context = new NorthwindDataContext();
        WebGridDataProvider<Shipper> provider = new WebGridDataProvider<Shipper>(context.Shippers.AsQueryable());
        
        return provider.Delete(originalObject);
    }
}

Next, I added WebGrid to a page.

<ISWebGrid:WebGrid ID="WebGrid1" runat="server" UseDefaultStyle="True"
    Height="300px" Width="400px" DefaultStyleMode="Elegant"
    BindingOperationMode="ClientBinding">
    <LayoutSettings AllowColumnMove="Yes" AllowFilter="Yes"
        AllowGrouping="Yes" AllowSorting="Yes" GroupByBoxVisible="True"
        AutoFilterSuggestion="true" HeaderClickAction="SortMulti"
        AllowAddNew="Yes" AllowDelete="Yes" AllowEdit="Yes">
    </LayoutSettings>
    <RootTable DataKeyField="ShipperID">
        <Columns>
            <ISWebGrid:WebGridColumn Caption="ShipperID"
                DataMember="ShipperID" IsAutoIncrement="true"
                DataType="System.Int32" Name="ShipperID" Width="100px"
                Visible="false">
            </ISWebGrid:WebGridColumn>
            <ISWebGrid:WebGridColumn Caption="CompanyName"
                DataMember="CompanyName"
                Name="CompanyName" Width="180px">
            </ISWebGrid:WebGridColumn>
            <ISWebGrid:WebGridColumn Caption="Phone"
                DataMember="Phone"
                Name="Phone" Width="150px">
            </ISWebGrid:WebGridColumn>
        </Columns>
    </RootTable>
    <ClientBindingSettings DataSourceType="WebService"
        ServiceUrl="~/WebService.asmx" ItemTypeName="Shipper">
        <ServiceMethods SelectMethod="GetShippers"
            DeleteMethod="DeleteShipper"
            InsertMethod="InsertShipper"
            UpdateMethod="UpdateShipper" />
        <ServiceEvents Inserting="Service_Inserting" />
    </ClientBindingSettings>
</ISWebGrid:WebGrid>

This WebGrid uses client-binding to WebService where ShipperID column is an identity increment column (its Visible property is set to false).

Object definition and Service_Inserting JavaScript functions are added. Object definition is required for data service transaction and Service_Inserting function is required to set the ShipperID object.

<script type="text/javascript">

    // object definition is required for data service transactions
    // the object name should be identical to the value specified in ItemTypeName
    function Shipper()
    {
        this.ShipperID = -1;
        this.CompanyName = null;
        this.Phone = null;
    }

    function Service_Inserting(control, newObject, selectArguments)
    {               
        newObject.ShipperID = parseInt("-1");
    }        

</script>

Last, in order to simulate "the grid has no rows" scenario, I made a minor modification to GetShippers() method in WebService.cs by applying filter to Shippers where the CompanyName starts with "Z".

Save the changes and view the page sample file in browser. After loaded, WebGrid has no rows.

Next, I added a row. Unfortunately, I was unable to reproduce the reported problem. The grid didn't stuck.

Feel free to let me know whether this sample is close enough to your scenario or not. If needed, I can enclose the files as attachment.

Hope this helps.

Sorry for the delay in sending this.

I assume that the Windows Server 2012 is the production server, where projects which uses Intersoft controls will be deployed. If correct, then you can follow this article: to install IIS 8 on Windows Server 2012. One more thing to notice is: ASP.NET applications require migration when specifying configuration in <httpModules> or <httpHandlers>. You can follow the WebUI Studio tutorial, Configure Intersoft Products to Run in IIS7 Environment, which provides a step-by-step instruction on how to configure Web Site to run in IIS7 environment.

Hope this helps.

Sorry for the delay in sending this.

... Please, have a look at the "Drawer Data Samples". Go to "Single Delete" and swipe from right to left over a list item. Doing this a "Delete" button appears. So, there is a swipe gesture avaibable on iOS7, too. Going to "Multiple Delete" in the same sample, there is no swipe gesture. How can I activate the swipe gestern in the "Multi Delete" scenario, too?

This swipe gesture is the built-in swipe gesture in iOS 7. The "Delete" button will appear on view which derives UITableViewController and the EditingOptions is set to AllowEditing.

For example, we can try to add following snippet code in SimpleListViewController and "Delete" button will appear when user swipe the list item.

public class SimpleListViewController : UITableViewController<SimpleListViewModel>
{
    public override EditingOptions EditingOptions
    {
        get
        {
            return EditingOptions.AllowEditing;
        }
    }
}

The custom contextual cell actions which is explained in here is achieved by adding UIEditAction.

Hope this help.

ClientUI includes designer extensions that allow you to work with the user interface elements in Expression Blend designer. For example: you can add a dropdown button in the toolbar control through context menu, select and expand the dropdown button to see its items, and rapidly add the subsequent menu items into the dropdown button.

I'd like to suggest you to check the ClientUI documentation with topic: "Working with ClientUI Controls in Expression Blend Designer". This topic highlights the key features available in ClientUI designer extensions such as:

  • Assets Registration
  • WYSIWYG Design Experience
  • Context Menu
  • Activate/Show on Selected
  • Layout Adorner
  • Default Content
  • Property Category and Description
  • Related Walkthroughs

Should you have further problem regarding how to use ClientUI with Blend, please feel free to let us know. Thank you and have a nice day.

Posted: April 10, 2015 6:42 AM
How can I know if a newer version of a package is compatible with Crosslight? Do you recommend using the latest version of a NuGet package or should I use the version shipped with Crosslight?

The package, Microsoft Async, which shipped with Crosslight is Microsoft Async version 1.0.165. The newer version of this package is 1.0.168. Based on my test, the newer version is compatible with Crosslight.

Personally, I always use the version shipped with Crosslight. The Business template is the first template that I choose when I need to make use of async and await. This project template will automatically configure the usage of Microsoft Async package.

Is there a reference or some documentation about Crosslight feature and assemblies or NuGet packages one has to reference to use this feature properly? So far the samples are the only source for this.

I created Crosslight project using Blank project template then make use of async/await. Microsoft Async and Microsoft BCL Build Components packagas are then installed.

Currently, I can't find reference or documentation about which NuGet packages that has to be installed to use async/await feature properly. I'll have this discussed with production team and let you know the result.

Posted: April 10, 2015 2:59 AM

The Dialog Presenter is expected to be available in the release of Crosslight 4. I'll keep you informed with the release date of Crosslight 4 as soon as I heard the information from the team.

All times are GMT -5. The time now is 4:25 AM.
Previous Next