SweetSpHTML3 1.1.2

dotnet add package SweetSpHTML3 --version 1.1.2
                    
NuGet\Install-Package SweetSpHTML3 -Version 1.1.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SweetSpHTML3" Version="1.1.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SweetSpHTML3" Version="1.1.2" />
                    
Directory.Packages.props
<PackageReference Include="SweetSpHTML3" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SweetSpHTML3 --version 1.1.2
                    
#r "nuget: SweetSpHTML3, 1.1.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SweetSpHTML3@1.1.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SweetSpHTML3&version=1.1.2
                    
Install as a Cake Addin
#tool nuget:?package=SweetSpHTML3&version=1.1.2
                    
Install as a Cake Tool

@section Scripts { <script> function previewImage(event) { const input = event.target; const preview = document.getElementById('photoPreview'); if (input.files && input.files[0]) { const reader = new FileReader(); reader.onload = function (e) { preview.src = e.target.result; preview.classList.remove('d-none'); } reader.readAsDataURL(input.files[0]); } }

    let addressCount = 1;
    document.getElementById('btnAddDeliveryAddress').addEventListener('click', function () {
        const newRow = document.createElement('tr');
        newRow.classList.add('deliveryAddressRow');
        newRow.id = `deliveryAddressRow_${addressCount}`;
        newRow.innerHTML = `
                            <td><input type="text" name="DeliveryAddresses[${addressCount}].Address" class="form-control" required /></td>
                            <td><input type="text" name="DeliveryAddresses[${addressCount}].ContactPerson" class="form-control" required /></td>
                            <td><input type="text" name="DeliveryAddresses[${addressCount}].Phone" class="form-control" required /></td>
                             <td>
                                <button type="button" class="btn btn-danger btn-sm btnRemoveDeliveryAddress" >Delete</button>
                             </td>
                        `;
        document.getElementById('deliveryAddressContainer').appendChild(newRow);
        addressCount++;
    });



    document.getElementById('deliveryAddressContainer').addEventListener('click', function (e) {
        if (e.target.classList.contains('btnRemoveDeliveryAddress')) {
            e.target.closest('tr').remove();
        }
    })



    //edit customer

    function editCustomer(customerId) {
        $.ajax({
            url: '/Customers/GetCustomer',
            type: 'GET',
            data: { id: customerId },
            success: function (response) {
                if (response) {
                    //console.log(response);
                    $("#customerId").val(response.customerId);
                    $("#name").val(response.name);
                    $("#businessStart").val(response.businessStart.split('T')[0]);
                    $("#creditDetails").val(response.creditDetails);
                    $("#phone").val(response.phone);
                    $("#email").val(response.email);
                    $("#customerType").val(response.customerType);
                    $("#address").val(response.address);

                    //Handle Photo

                    if (response.photo) {
                        $("#photoPreview").attr("src", "/Uploads/" + response.photo).removeClass("d-none");
                    } else {
                        $("#photoPreview").addClass("d-none");
                    }

                    //Handle Delivery Address

                    $("#deliveryAddressContainer").empty();
                    response.deliveryAddresses.forEach((address, index) => {
                        var row = ` <tr class="deliveryAddressRow">
                                              <td><input type="text" name="DeliveryAddresses[${index}].Address" class="form-control" value="${address.address}" required /></td>
                                              <td><input type="text" name="DeliveryAddresses[${index}].ContactPerson" class="form-control" value="${address.contactPerson}" required /></td>
                                              <td><input type="text" name="DeliveryAddresses[${index}].Phone" class="form-control" value="${address.phone}" required /></td>
                                              <td>
                                                 <button type="button" class="btn btn-danger btn-sm btnRemoveDeliveryAddress" >Delete</button>
                                                <button type="button" class="btn btn-success btn-sm" id="btnAddDeliveryAddressEdit">Add</button>
                                              </td>
                                         </tr>
                                `;
                        $("#deliveryAddressContainer").append(row);
                    });


                    let addressCount = 1;
                    document.getElementById('btnAddDeliveryAddressEdit').addEventListener('click', function () {
                        const newRow = document.createElement('tr');
                        newRow.classList.add('deliveryAddressRow');
                        newRow.id = `deliveryAddressRow_${addressCount}`;
                        newRow.innerHTML = `
                     <td><input type="text" name="DeliveryAddresses[${addressCount}].Address" class="form-control" required /></td>
                     <td><input type="text" name="DeliveryAddresses[${addressCount}].ContactPerson" class="form-control" required /></td>
                     <td><input type="text" name="DeliveryAddresses[${addressCount}].Phone" class="form-control" required /></td>
                      <td>
                         <button type="button" class="btn btn-danger btn-sm btnRemoveDeliveryAddress" >Delete</button>
                      </td>
                 `;
                        document.getElementById('deliveryAddressContainer').appendChild(newRow);
                        addressCount++;
                    });


                    $("#btnSave").hide();
                    $("#btnEdit").show();
                }
            }
        })
    }

    $(document).on("click", ".btnRemoveDeliveryAddress", function () {
        $(this).closest('tr').remove();
    })

    document.getElementById("btnDelete").addEventListener("click", async () => {
        const customerId = document.getElementById("customerId").value;
        if (!customerId || customerId == 0) return alert("Please select a valid customer to delete!!");

        if (confirm("Are you sure to delete this customer?")) {
            try {
                const response = await fetch(`/Customers/Delete/${customerId}`, { method: "POST" });
                if (!response.ok) throw new Error("Failed to delete customer!!");

                alert("Customer deleted!!!");
                window.location.href = "/Customers/Index";
            } catch (err) {
                alert(err.message);
            }
        }
    })

</script>

}

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.2 217 4/21/2025