0

Task from manufacture. Page show last 100 packages of product. Screen divided on two parts: left - list of button, which contain code (like id) of element in database, and right - data of selected package (by chosen code in left part).

<Div Class="d-flex flex-column">
        @{
            packages = dbCommands.Select("Prod.Packages", 100);
        }
        @for (int i = 0; i < packages.Rows.Count; i++)
        {
            <button class="btn" onclick=@(()=>{ selectedPackage = i;})>
                <PackageCardMini serialCode=@GetSerialCode(packages, i) date=@GetDate(packages, i)/>
            </button>
        }
    </Div>
    <Div Class="d-flex flex-column">
        @if (packages != null && selectedPackage != null)
        {
            <PackageCard package_id=@GetPackageID(packages, selectedPackage)
                number=@GetNumber(packages, selectedPackage)
                packageCode=@GetPackageCode(packages, selectedPackage)
                serialCode=@GetSerialCode(packages, selectedPackage)
                date=@GetDate(packages, selectedPackage)
                model_id=@GetModelID(packages, selectedPackage)
                line_id=@GetLineID(packages, selectedPackage)
                quantity=@GetQuantity(packages, selectedPackage)
                description=@GetDescription(packages, selectedPackage) />
        }
    </Div>
</Div>
  • packages - data from db, which contain 100 last row from table "Prod.Pacakges"
  • selectedPackage - number of row, that contain needed package

In this code I try to select row number in onclick event by push i in anonim function. But always i equal last number of rows.

Also I try to push button element to function by using ElementReference, but in this way, how I understand, every element should be static, no generate in loop.

  • @DimitrisMaragkos Yeah, it's work. Thank you. But I also should use ```InvokeAsync(StateHasChanged)``` to refresh data in component. – Roman Nichi Apr 15 '23 at 14:11

0 Answers0