es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ocultar botones de .NET según la declaración SQL.

Necesito ocultar estos dos botones en la página de inicio según el valor devuelto por la consulta SQL.

<a onclick="editable(@item.Id2)" data-toggle="modal" data-target="#editpage" type="button" class="btn btn-light-warning font-weight-bold mr-2">
<i class="fas fa-edit"></i></a>

<a onclick="deleted(@item.Id2)" data-toggle="modal" data-target="#delete" type="button" class="btn btn-light-danger font-weight-bold mr-2">
<i class="fas fa-trash"></i></a>

Aquí está mi consulta SQL:

SELECT Action.ID2, [Personel List_T].NetworkName
FROM [Personel List_T]
INNER JOIN [Departman List_T] ON [Personel List_T].Departman = [Departman List_T].[Departman List]
INNER JOIN Action ON [Departman List_T].ID = Action.RelatedDepartment

Y la consulta me devuelve una tabla así:

ID2   | NetworkName | 
------+-------------+
6583  | MRTGD       | 
791   | SOMEUSER    | 

En mi index.cshtml, encontré el nombre de red y el ID2 así:

Nombre de red:

@foreach (var item2 in User.Claims.Take(1)){
   string ldapID = item2.Value; 
}

ID2:

@item.Id2

Pero según la tabla devuelta por la consulta SQL, si el ID2 y el nombre de red están en los resultados, no tengo idea de cómo activar/desactivar los botones.

Si ldapID=MRTGD e ID2=6583, necesito mostrar los botones para este ID2=6583 en DataTable. Si no coinciden, no debería poder mostrar los botones. ¿Tienen alguna sugerencia?

Tags:  

Answer

  1. Avatar for davy.ai

    Para ocultar los botones en función de los resultados de la consulta SQL, puedes agregar lógica a tu archivo cshtml.

    Primero, puedes recuperar los resultados de la consulta SQL y almacenarlos en una variable:

    “` C#
    var sqlResults = // código para recuperar los resultados de la consulta SQL


    Luego, dentro del código HTML de los botones, puedes agregar una declaración condicional para verificar si el ID2 del elemento actual coincide con uno de los IDs devueltos en la consulta SQL: ``` HTML <a onclick="editable(@item.Id2)" data-toggle="modal" data-target="#editpage" type="button" class="btn btn-light-warning font-weight-bold mr-2" @if(!sqlresults.exists(x=""> x.ID2 == item.Id2)){style="display:none;"} > <i class="fas fa-edit"></i></a> <a onclick="deleted(@item.Id2)" data-toggle="modal" data-target="#delete" type="button" class="btn btn-light-danger font-weight-bold mr-2" @if(!sqlresults.exists(x=""> x.ID2 == item.Id2)){style="display:none;"} > <i class="fas fa-trash"></i></a>

    Esta declaración condicional utiliza el método “Exists” para verificar si hay algún elemento en los resultados de la consulta SQL que coincida con el ID2 del elemento actual. Si no hay una coincidencia, se establece el atributo “style” en “display:none;”, lo que oculta el botón.

    Puedes modificar esta declaración condicional para verificar también si el nombre de red del usuario actual coincide con uno de los nombres devueltos en la consulta SQL, utilizando una lógica similar. Por ejemplo:

    @foreach (var item2 in User.Claims.Take(1))
    {
        string ldapID = item2.Value;
    }
    
    <a onclick="editable(@item.Id2)" data-toggle="modal" data-target="#editpage" type="button" class="btn btn-light-warning font-weight-bold mr-2" @if(!sqlresults.exists(x=""> x.ID2 == item.Id2 && x.NetworkName == ldapID)){style="display:none;"} >
    <i class="fas fa-edit"></i></a>
    
    <a onclick="deleted(@item.Id2)" data-toggle="modal" data-target="#delete" type="button" class="btn btn-light-danger font-weight-bold mr-2" @if(!sqlresults.exists(x=""> x.ID2 == item.Id2 && x.NetworkName == ldapID)){style="display:none;"} >
    <i class="fas fa-trash"></i></a>
    

    Esta declaración condicional actualizada verifica una coincidencia tanto en ID2 como en NetworkName. Solo los elementos que cumplan ambos criterios mostrarán sus botones.

Comments are closed.