Search code examples
asp.net-mvcrazorwebgrid

Displaying image if Validation failed in webgrid


How would I display images(one or more) icon/image based on the validation failed in Webgrid, Code is given below

the below code is showing without any validation.

 @grid.GetHtml(
        displayHeader: false,
        columns: grid.Columns(
                grid.Column(header: "Serial Number", format: @<input type="text" id="SerialNumber" name="serialNumber_@(item.WebGrid.Rows.IndexOf(item))" value="@item.SerialNumber" /> 
            ));

I would like to display icon next to the <input if the validation is fail.

I have tried to do something like this:

grid.Column(header: "Serial Number", format: @<input type="text" id="SerialNumber" name="serialNumber_@(item.WebGrid.Rows.IndexOf(item))" value="@item.SerialNumber" />**@if(item.SerialNumberFailed !=null) {<div><img src=\"failed.gif\" /></div>}**)

Solution

  • I able to figured out - hope this will help others.

    grid.Column(header: "Serial Number", format: (item) =>
    {
    int row = item.WebGrid.Rows.IndexOf(item);
    string value = item.Location;
    if (!string.IsNullOrEmpty(item.ValidationFailed.LocationValidationFailed))
    {
    return Html.Raw(string.Format("
    <input type=\"text\" id=\"Serial Number\" name=\"location_{0}\" value=\"{1}\" />
    <div class=\"input-group\">
        <span class=\"fa fa-chain-broken redcolor\" title=\"wrong Serial Number\" </span>
    </div>
    ", row, value));
    }
    else
    {
    return Html.Raw(string.Format("
    <input type=\"text\" id=\"Location\" name=\"location_{0}\" value=\"{1}\" />", row, value));
    //
    }
    }),