Stack Overflow en español Asked by Ledferoz10 on August 26, 2021
Tengo una tabla de uno a uno de radicaciones a documentos adjuntos, cuando creo un radicado, debo adjuntarle un archivo.
Tengo estos controles:
<asp:TemplateField HeaderText="Archivo" HeaderStyle-CssClass="text-center">
<ItemTemplate>
<asp:FileUpload ID="fu1" runat="server" />
<asp:Button ID="btnguardar" runat="server" Text="Adjuntar" CommandName="up" />
</ItemTemplate>
</asp:TemplateField>
Funcionalidad del botón:
protected void gvradica_RowCommand(object sender, GridViewCommandEventArgs e)
{
Button btnUp = e.CommandSource as Button;
if (e.CommandName.ToLower() != "up")
{
return;
}
FileUpload fu = btnUp.FindControl("fu1") as FileUpload;
if (fu.HasFile)
{
DOCADJUNTO da = new DOCADJUNTO();
if (fu.HasFile)
{
da.ID_RADICACION_FK = 1; // El numero 1 es un dato quemado
da.NOMBRE = System.IO.Path.GetFileNameWithoutExtension(fu.PostedFile.FileName);
da.EXTENSION = System.IO.Path.GetExtension(fu.PostedFile.FileName);
da.ARCHIVO = fu.FileBytes;
adoDocAdj.agregarAdjunto(da);
}
}
}
Lo que se quiere es que el ID_RADICACIÓN_FK
lo traiga de manera automática, de la fila de la grilla seleccionada, pero no he podido hacerlo, lo he intentado hacerlo de las siguientes formas.
int index = Convert.ToInt32(e.CommandArgument);
da.ID_RADICACION_FK = Convert.ToInt32(gvradica.DataKeys[index].Value);
GridViewRow row = gvradica.SelectedRow;
da.ID_RADICACION_FK = Convert.ToInt32(gvradica.DataKeys[row.RowIndex].Value);
GridViewRow row = gvradica.SelectedRow;
da.ID_RADICACION_FK=Convert.ToInt32(gvradica.DataKeys[row.RowIndex].Values["ID_RADICACION"]);
var query = from ra in contexto.RADICACIONES select new { ra.ID_RADICACION };
da.ID_RADICACION_FK = int.Parse(gvradica.SelectedDataKey.Values[0].ToString() + "" + gvradica.SelectedDataKey.Values[1].ToString());
da.ID_RADICACION_FK = Convert.ToInt32(e.CommandArgument);
Ninguna sirve.
Para poder utilizar e.CommandArgument
, primero debes asignarle un valor único a cada botón, en este caso el id de la fila:
<asp:Button ID="btnguardar" runat="server" Text="Adjuntar" CommandName="up" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"/>
Luego ya puedes capturarlo en el evento RowCommand:
da.ID_RADICACION_FK = Convert.ToInt32(e.CommandArgument);
Answered by JYass on August 26, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP