Hace un par de días el sitio por default de un IIS mandaba este error, los demás sitios web en el servidor funcionaban correctamente, la solución fue inciar el httpfilter por medio de la línea de commandos net start httpfilter. algunos minutos después fue necesario reiniciar el pool de la aplicación y todo quedó nuevamente en orden.
Este servicio implementa el protocolo de transferencia de hipertexto seguro (HTTPS), usando la Capa de sockets seguros (SSL). Si se deshabilita este servicio, no se podrá iniciar ningún servicio que dependa explícitamente de él.
En este blog iré publicando algunas cosas utiles, al menos para mi, relacionadas con las computadoras y la programación que voy utilizando en mi labor diaria.
viernes, 23 de agosto de 2013
jueves, 16 de mayo de 2013
Agregar un Botón con una función específica en un gridview en ASP.Net
Se me presentó la necesidad de tener un gridview con botones, de editar, seleccionar, eliminar y uno botón adicional que realizara otra función.
Primero declaramos nuestro gridview con las columnas que necesitamos y agregamos en un templateField el botón que necesitamos, en este ejemplo agrego 2 y agregamos en la definición del gridview la función OnRowCommand y le decimos que cree una nueva función para este evento.
<asp:GridView ID="GridView1" runat="server" OnRowDeleting ="GridView1_RowDeleting" OnRowEditing ="GridView1_RowEditing" AutoGenerateColumns="False" OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit ="GridView1_RowCancelingEdit" OnRowCommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField HeaderText ="Preguntas"><ItemTemplate>
<asp:ImageButton ID="BTPreguntas" runat="server" CausesValidation="False"
CommandName="Select" ImageUrl="~/Imagenes/lapiz.png" CommandArgument="<%# CType(Container, GridViewRow).RowIndex%>"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText ="Temas"><ItemTemplate>
<asp:ImageButton ID="BtTemas" runat="server" CausesValidation="False"
CommandName="Select" ImageUrl="~/Imagenes/lapiz.png" CommandArgument="<%# CType(Container,GridViewRow).RowIndex %>"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
en Botón, le agregamos un CommandName, a este le podemos poner el nombre que deseemos, y agregamos tambien un CommandArgument en el cual vamos a pasar el indice de la fila en la que se hizo click al botón con la siguiente instrucción "<%# CType(Container, GridViewRow).RowIndex%>"
Pasando a la parte del código en la función que se creo para el evento
Protected Sub GridView1_RowCommand(sender As Object, e As GridViewCommandEventArgs)
Aquí se escribe el código de la función deseada
End Sub
Aquí podemos leer el CommandName que le pasamos con la instruccion e.CommandName
el CommandArgument con e.CommandArgument con el que podemos recuperar el indice de la fila para obtener algún identificador del registro que deseamos por ejemplo.
Dim etiqueta As Label = GridView1.Rows(e.CommandArgument.ToString).Cells(0).FindControl("Id")
en mi caso tenía una etiqueta con un identificador, por lo que la instrucción de la fila superior me devuelve la etiqueta. en caso de que no tenga un control se puede recuperar el valor con un
GridView1.Rows(e.CommandArgument.ToString).Cells(0).text
También podemos obtener el identificador del botón que se presionó con e.CommandSource.id lo cual nos sirve para poder identificar el botón que se presionó en caso de que tengamos más de un botón creado de está manera. Así podemos programar diferentes funciones para cada botón.
Primero declaramos nuestro gridview con las columnas que necesitamos y agregamos en un templateField el botón que necesitamos, en este ejemplo agrego 2 y agregamos en la definición del gridview la función OnRowCommand y le decimos que cree una nueva función para este evento.
<asp:GridView ID="GridView1" runat="server" OnRowDeleting ="GridView1_RowDeleting" OnRowEditing ="GridView1_RowEditing" AutoGenerateColumns="False" OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit ="GridView1_RowCancelingEdit" OnRowCommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField HeaderText ="Preguntas"><ItemTemplate>
<asp:ImageButton ID="BTPreguntas" runat="server" CausesValidation="False"
CommandName="Select" ImageUrl="~/Imagenes/lapiz.png" CommandArgument="<%# CType(Container, GridViewRow).RowIndex%>"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText ="Temas"><ItemTemplate>
<asp:ImageButton ID="BtTemas" runat="server" CausesValidation="False"
CommandName="Select" ImageUrl="~/Imagenes/lapiz.png" CommandArgument="<%# CType(Container,GridViewRow).RowIndex %>"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
en Botón, le agregamos un CommandName, a este le podemos poner el nombre que deseemos, y agregamos tambien un CommandArgument en el cual vamos a pasar el indice de la fila en la que se hizo click al botón con la siguiente instrucción "<%# CType(Container, GridViewRow).RowIndex%>"
Pasando a la parte del código en la función que se creo para el evento
Protected Sub GridView1_RowCommand(sender As Object, e As GridViewCommandEventArgs)
Aquí se escribe el código de la función deseada
End Sub
Aquí podemos leer el CommandName que le pasamos con la instruccion e.CommandName
el CommandArgument con e.CommandArgument con el que podemos recuperar el indice de la fila para obtener algún identificador del registro que deseamos por ejemplo.
Dim etiqueta As Label = GridView1.Rows(e.CommandArgument.ToString).Cells(0).FindControl("Id")
en mi caso tenía una etiqueta con un identificador, por lo que la instrucción de la fila superior me devuelve la etiqueta. en caso de que no tenga un control se puede recuperar el valor con un
GridView1.Rows(e.CommandArgument.ToString).Cells(0).text
También podemos obtener el identificador del botón que se presionó con e.CommandSource.id lo cual nos sirve para poder identificar el botón que se presionó en caso de que tengamos más de un botón creado de está manera. Así podemos programar diferentes funciones para cada botón.
Etiquetas:
alert,
ASP Net,
ASP.Net,
boton personalizado,
botones,
button,
gridview,
más de un boton.,
OnRowCommand,
varios botones,
varios controles,
vb net,
VB.Net,
vbnet
Emular msgbox en ASP.Net
Cuando estamos programando en ASP.net en muchas ocasiones necesitamos mandar mensajes al usuario, para esto podemos emular el msgbox con la siguiente función:
Public Sub MesgBox(ByVal sMessage As String, ByRef pagina As System.Web.UI.Page)
ScriptManager.RegisterStartupScript(pagina, pagina.GetType(), pagina.UniqueID, "alert ('" & sMessage & "');", True)
End Sub
Yo la tengo en un módulo y así puedo llamarla desde cualquier parte del proyecto, con la siguiente sentencia:
MesgBox("Aquí va el texto que quieres mostrar", Me)
Public Sub MesgBox(ByVal sMessage As String, ByRef pagina As System.Web.UI.Page)
ScriptManager.RegisterStartupScript(pagina, pagina.GetType(), pagina.UniqueID, "alert ('" & sMessage & "');", True)
End Sub
Yo la tengo en un módulo y así puedo llamarla desde cualquier parte del proyecto, con la siguiente sentencia:
MesgBox("Aquí va el texto que quieres mostrar", Me)
miércoles, 9 de enero de 2013
Cerrar un proceso en ejecución desde VB.Net
Para buscar un proceso por nombre en VB.Net
Primero creamos un arreglo de tipo proceso
Dim procesos As Process()
le asignamos todos los procesos que se encuentren con el nombre, en el caso de este ejemplo estoy tratando de cerrar el proceso "Powerpnt" que se abre cuando ejecutamos una presentacion de powerpoint.
procesos = Process.GetProcessesByName("Powerpnt")
Luego determinamos si encontró algo y si los encuentra los va cerrando del ultimo al primero
If procesos.Length > 0 Then
For i = procesos.Length - 1 To 0 Step -1
procesos(i).Kill()
Next
End If
Adicionalmente una vez que identificamos el proceso, podemos ver su nombre, en que procesadores se está ejecutando, el nombre de la pantalla principal, su Id, saber a que hora inicio, la memoria que ocupa, el tiempo de procesador que ha ocupado, sus subprocesos, si está respondiendo su interfaz de usuario, su prioridad de ejecución.
Puede ser utilizado para cerrar algún programa que no se desee que corra por ejemplo en una sala de internet, para evitar que alguien utilice algún programa como podría ser en el una oficina podría con un timer, verificar que los empleados no utilicen facebook.
Dim procesos As Process() = Process.GetProcessesByName("chrome")
If procesos.Length > 0 Then
For i = procesos.Length - 1 To 0 Step -1
If procesos(i).MainWindowTitle.Contains("yahoo") Then procesos(i).Kill()
Next
End If
Primero creamos un arreglo de tipo proceso
Dim procesos As Process()
le asignamos todos los procesos que se encuentren con el nombre, en el caso de este ejemplo estoy tratando de cerrar el proceso "Powerpnt" que se abre cuando ejecutamos una presentacion de powerpoint.
procesos = Process.GetProcessesByName("Powerpnt")
Luego determinamos si encontró algo y si los encuentra los va cerrando del ultimo al primero
If procesos.Length > 0 Then
For i = procesos.Length - 1 To 0 Step -1
procesos(i).Kill()
Next
End If
Adicionalmente una vez que identificamos el proceso, podemos ver su nombre, en que procesadores se está ejecutando, el nombre de la pantalla principal, su Id, saber a que hora inicio, la memoria que ocupa, el tiempo de procesador que ha ocupado, sus subprocesos, si está respondiendo su interfaz de usuario, su prioridad de ejecución.
Puede ser utilizado para cerrar algún programa que no se desee que corra por ejemplo en una sala de internet, para evitar que alguien utilice algún programa como podría ser en el una oficina podría con un timer, verificar que los empleados no utilicen facebook.
Dim procesos As Process() = Process.GetProcessesByName("chrome")
If procesos.Length > 0 Then
For i = procesos.Length - 1 To 0 Step -1
If procesos(i).MainWindowTitle.Contains("yahoo") Then procesos(i).Kill()
Next
End If
Suscribirse a:
Entradas (Atom)