Me quiere habilitar o deshabilitar el linkbutton en algunas filas de gridview basados en la condición.. puedo habilitar el linkbutton en una fila y desactivarlo en otra fila de los mismos en la vista de cuadrícula ??mi código es aquí

  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{LinkButton lnk2 = (LinkButton)e.Row.FindControl("LinkButton2");
    if (e.Row.RowType == DataControlRowType.DataRow)
    {

        SqlCommand cmd12 = new SqlCommand("Select testsession_status from student_vs_testsession_details where  testsession_id='" + v_testid.Text + "' ", con12);
        SqlDataReader dr12 = cmd12.ExecuteReader();
        while (dr12.Read())
        {
            string test_status = dr12[0].ToString();
            LinkButton lnk2 = (LinkButton)e.Row.FindControl("LinkButton2");
            foreach (GridViewRow row in GridView1.Rows)
            {
                if (v_testtype == "Theory Test" && test_status == "Completed")
                {
                    lnk2.Visible = true;
                }
                else
                {
                    lnk2.Visible = false;
                }

            }




        }
  • ¿Cuál es en realidad su pregunta, lo que en este código no funciona, ¿tienes algún mensaje de error ?. A mí es que parece que no funciona, pero sin tenerlo en mi depurador, abisal saber lo que usted flujo de la lógica de su programa no puedo aconsejarte qué hacer. – uno de los errores es que no encuentra el LinkButton en cada línea, el segundo Error es que no se conecta cada línea en gridview con cada línea en la base de datos.
  • En este caso, usted puede necesitar un bucle a través de un control gridview y establecer el vínculo activar/desactivar el botón en consecuencia, debido a que el código anterior solo buscará la fila actual del elemento. no todo filas. foreach (DataGridViewRow fila en la cuadrícula.Filas) { var enlace = fila.FindControl(«LinkButton2») }
  • ¿cómo puedo recorrer cada fila y comprobar la condición para activar/desactivar el linkbutton ? funciona sin ningún tipo de error..pero como @Deepu dijo que el código sólo se mira la fila actual itm ..
  • ¿CÓMO puedo encontrar el LinkButton en cada línea, y conectar cada línea en gridview con cada línea en la base de datos. ?? @Aristos por favor ayuda
InformationsquelleAutor ARATHY | 2013-06-20

2 Comentarios

  1. 5

    Sí, usted puede hacer fácilmente en el Evento RowdataBound, pero usted ha usado lnk2.Visible de la propiedad en el código.

    puede ser el uso de Visible propiedad de otro requisito, pero sólo quiero confirmar que es utilizado para mostrar/ocultar el Linkbutton sólo. Para habilitar/disble un Linkbutton, uso Enabled propiedad de Linkbutton. como:

    lnk2.Enabled = true;//to enable linkbutton.
    lnk2.Enabled = false;//to disable linkbutton.

    Si quieres hacer uso de rowindex, entonces usted puede e.Row.RowIndex para encontrar el actual índice de fila dentro de ‘RowDatabound` evento de gridview. como:

    if(e.Row.RowIndex==2)
    {
      LinkButton lnk2 = (LinkButton)e.Row.FindControl("LinkButton2");
      lnk2.Enabled=false;
    }

    Si desea habilitar/deshabilitar Linkbutton basado en el valor de alguna otra columna de la misma fila, entonces usted puede hacer lo mismo dentro de Rowdatabound evento. como:

    string Namecolumnvalue = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Name"));
    LinkButton lnk2 = (LinkButton)e.Row.FindControl("LinkButton2");
    if(Namecolumnvalue =="Disable")
    {      
      lnk2.Enabled=false;
    }
    else{
      lnk2.Enabled=true;
    }
    • Thanksalot 🙂 🙂 🙂 @SanjeevRai
  2. 0
        --------aspx page code---------
    <asp:GridView ID="gvLibrary" runat="server" AutoGenerateColumns="False" Width="100%" DataKeyNames="LibMstRefNo"
    EmptyDataText="No Client Found" CssClass="table table-striped table-bordered" OnRowDataBound="gvLibrary_RowDataBound">
    <Columns>
    <asp:TemplateField HeaderText="Issue">
    <ItemTemplate>
    <asp:LinkButton ID="lnkIssue" runat="server" Text="Issue" OnClick="lnkIssue_Click"></asp:LinkButton>
    </ItemTemplate>
    <HeaderStyle HorizontalAlign="Left" />
    <ItemStyle HorizontalAlign="Left" />
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Receive">
    <ItemTemplate>
    <asp:LinkButton ID="lnkReceive" runat="server" Text="Receive" OnClick="lnkReceive_Click" OnClientClick="return confirm('Are you Sure?')"></asp:LinkButton>
    </ItemTemplate>
    <HeaderStyle HorizontalAlign="Left" />
    <ItemStyle HorizontalAlign="Left" />
    </asp:TemplateField>
    </Columns>
    </asp:GridView>
    ------------aspx.cs page code------------------
    protected void gvLibrary_RowDataBound(object sender, GridViewRowEventArgs e)
    {
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
    string nbps = e.Row.Cells[8].Text;
    if(nbps== "&nbsp;")
    {
    nbps = "";
    }
    else
    {
    nbps = e.Row.Cells[8].Text;
    }
    if (nbps == "")
    {
    LinkButton btn = (LinkButton)e.Row.FindControl("lnkissue");
    LinkButton btn1 = (LinkButton)e.Row.FindControl("lnkReceive");
    btn.Enabled = true;
    btn1.Enabled = false;
    btn1.ForeColor = System.Drawing.Color.Red;
    }
    else
    {
    LinkButton btn = (LinkButton)e.Row.FindControl("lnkissue");
    LinkButton btn1 = (LinkButton)e.Row.FindControl("lnkReceive");
    btn.Enabled = false;
    btn.ForeColor = System.Drawing.Color.Red;
    btn1.Enabled = true;
    }
    }
    }

    Habilitar y deshabilitar el botón de enlace en gridview

Dejar respuesta

Please enter your comment!
Please enter your name here