Foros del Web » Programación para mayores de 30 ;) » .NET »

Update embebido

Estas en el tema de Update embebido en el foro de .NET en Foros del Web. Hola tengo una sql emdebida dentro de un label. Y esa sql me pinta este codigo: <fieldset><legend>Wifi</legend><input class='checkbox' id='Wifi Pozuelo' title='Wifi Pozuelo' type='checkbox' value='Wifi Pozuelo' ...

  #1 (permalink)  
Antiguo 10/05/2005, 02:05
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Update embebido

Hola tengo una sql emdebida dentro de un label. Y esa sql me pinta este codigo:

<fieldset><legend>Wifi</legend><input class='checkbox' id='Wifi Pozuelo' title='Wifi Pozuelo' type='checkbox' value='Wifi Pozuelo' name='Wifi Pozuelo'>Wifi Pozuelo<br></fieldset>

Me gustaria saber como puedo hacer para hacer un update o un insert en la base de datos de estos campos???

Jose Miguelin es la famosa sql de la muerte que sacaste..
Gracias
  #2 (permalink)  
Antiguo 10/05/2005, 02:49
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Hombre!!!!!!!!!!!!!!!!!!!!!!!!!!!

Jeje, haber vamos haber, no entiendo muy bien a que te refieres con eso de SQL embebido, no conozco ese concepto.

Pero dependerá de a que le quieres hacer el update o que quieres insertar, no??Explica un poquito mejor y así haber si lo podemos aclarar sin ocupar 3 o 4 páginas, jeje.
  #3 (permalink)  
Antiguo 10/05/2005, 02:59
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Sere conciso

Haber si me explico:

Tras la pedazo de sql que me pasaste (lo digo por la calidad no por la cantidad), me sale el listado de los servicios con un checkbox con los que tiene el usuario. Eso lo hago con esto:

if (reader4["UsServIdUs"].ToString()=="")
{
Servicios.Text+="<input class='checkbox' id='" + reader4["ServNombre"].ToString() + "' title='" + reader4["ServNombre"].ToString() + "' type='checkbox' value='" + reader4["ServNombre"].ToString() + "' name='" + reader4["ServNombre"].ToString() + "'>";
Servicios.Text+=reader4["ServNombre"].ToString();
Servicios.Text+="<br>";
}
else
{
Servicios.Text+="<input class='checkbox' id='" + reader4["ServNombre"].ToString() + "' title='" + reader4["ServNombre"].ToString() + "' type='checkbox' CHECKED value='" + reader4["ServNombre"].ToString() + "' name='" + reader4["ServNombre"].ToString() + "'>";
Servicios.Text+=reader4["ServNombre"].ToString();
Servicios.Text+="<br>";
}

La cuestion es que ahora me interesa poder modificar esos servicios pertenecientes al usuario, es decir kitarselos o ponerselos.
Pero claro al estar el codigo html dentro de la label servicios.text pues no puedo coger el valor de los check tan facilmente, principalmente xq no tienen runat server.
Este es el codigo ke me saca en html:

<fieldset>
<legend>Wifi</legend>
<input class='checkbox' id='Wifi Pozuelo' title='Wifi Pozuelo' type='checkbox' value='Wifi Pozuelo' name='Wifi Pozuelo'>Wifi Pozuelo<br>
</fieldset>
faltan otros fieldset pero son del estilo.

Espero haberme explicado bien ahora.

Gracias por la ayuda
  #4 (permalink)  
Antiguo 10/05/2005, 03:23
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Bien, pues entonces dependerá de en que momento quieras hacer la actualizacion (inserción) si bien al finalizar todas las operaciones y pulsar un botón o bien cada vez que se chequee (o deschequee) un servicio. No pasa nada por ponerlos en html se puede recuperar de igual forma.

Elige una de las 2 opciones dependiendo de tus necesidades (si el listado es muy grande, si existe la posibilidad de que se cambien los datos) y te pongo un ejemplo
  #5 (permalink)  
Antiguo 10/05/2005, 03:33
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Con boton

La verdad es que ya engo echo una parte de la actualizacion xq no solo salen los servicios sino tambien los datos del usuario. Entonces lo tengo echo en el on_click del boton:

private void actualizarusu(object sender, System.EventArgs e)
{
myConnection = new SqlConnection (connectionString);
string updateCmd;

if (ConfUsPass.Visible)
{
updateCmd = "UPDATE Usuarios SET UsNombre=@UsNombre,UsPass=@UsPass,UsMail=@UsMail,U sTelefono=@UsTelefono,UsIdPer=@UsIdPer where UsId=@UsId";
}
else
{
updateCmd = "UPDATE Usuarios SET UsNombre=@UsNombre,UsMail=@UsMail,UsTelefono=@UsTe lefono,UsIdPer=@UsIdPer where UsId=@UsId";
}
myCommand = new SqlCommand(updateCmd, myConnection);
myCommand.Parameters.Add(new SqlParameter("@UsId",
SqlDbType.Int, 4));
myCommand.Parameters["@UsId"].Value = ComboLogin.SelectedItem.Value;
myCommand.Parameters.Add(new SqlParameter("@UsNombre",
SqlDbType.NVarChar, 50));
myCommand.Parameters["@UsNombre"].Value = UsNombre.Value;
myCommand.Parameters.Add(new SqlParameter("@UsPass",
SqlDbType.NVarChar, 50));
myCommand.Parameters["@UsPass"].Value = UsPass.Value;
myCommand.Parameters.Add(new SqlParameter("@UsMail",
SqlDbType.NVarChar, 50));
myCommand.Parameters["@UsMail"].Value = UsMail.Value;
myCommand.Parameters.Add(new SqlParameter("@UsTelefono",
SqlDbType.NVarChar, 15));
myCommand.Parameters["@UsTelefono"].Value = UsTelefono.Value;
myCommand.Parameters.Add(new SqlParameter("@UsIdPer",
SqlDbType.Int, 4));
myCommand.Parameters["@UsIdPer"].Value = UsPerfil.SelectedItem.Value;
myCommand.Connection.Open();
try
{
if ((ConfUsPass.Visible) && (UsPass.Value!=ConfUsPass.Value))
MsgBox1.alert("El password no es correcto");
else
{
int numreg=myCommand.ExecuteNonQuery();
//updateservicios();
Response.Redirect("MenuadministradorUsu.aspx?Oku=1 &Nombre="+Request.QueryString["Nombre"].ToString()+"&Id="+Request.QueryString["id"].ToString()+"&mod="+ComboLogin.SelectedItem.Value) ;
//Response.Redirect("Menuadministrador1.aspx?Oku=1&m od="+nombre.Text);
}
}
catch (SqlException c)
{
if (c.Number == 2627)
mensage.Text = "ERROR: Este cliente ya existe";
else
mensage.Text = "ERROR: No se ha podido añadir el registro, por favor " +
"asegurese de que todo esta correctamente escrito, gracias";

}
myCommand.Connection.Close();
}

Ahora habia creado una funcion updateservicios() para hacer eso pero no veo como
  #6 (permalink)  
Antiguo 10/05/2005, 03:40
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
puedes hacer lo siguiente:

1- Creas un input de tipo text con width=0 (para que no se vea).

2- en el evento onclick de los check, agregas o quitas valores a dicho input con los id de los servicios seleccionados

3- creas un botón guardar que haga un postback y pase al server el valor del input para saber que servicios se ha quitado o se han puesto.

Neivan y yo estuvimos haciendo un codigo para hacer algo muy parecido en el siguiente post:

http://www.forosdelweb.com/f29/actualizar-tabla-con-valor-campo-misma-mas-cantidad-296296/

Si tienes dudas, ya sabes
  #7 (permalink)  
Antiguo 10/05/2005, 03:51
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
creo que error

El post ke me has puesto creo ke no es el correcto...
Se me olvidaba decirte que tengo una tabla con 2 columnas:
la primera con el id del usuario y la segunda con el id del servicio.
Entonces yo creo que lo que tengo que hacer es sabiendo ya el usuario en el que estoy, o insertar una fila nueva para asignarle un servicio al usuario o eliminar una fila segun el servicio y el usuario que sea.

Entonces en el evento onclick deberia hacer esto pero com hago para recoger el valor de ese check????
  #8 (permalink)  
Antiguo 10/05/2005, 04:08
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Ese post, es para realizar los cambios una vez se ha finalizado la operación (se han seleccionado todos los deseados y se ha decidido guardar), según lo que me dices creo que lo que quieres es que cada vez que se marque un check o se desmarque haga la acción, me equivoco????en ese caso podrías hacer lo siguiente (aunque será más pesado para la aplicación que el caso anterior):

if (reader4["UsServIdUs"].ToString()=="")
{
Servicios.Text+="<input class='checkbox' id='" + reader4["ServNombre"].ToString() + "' title='" + reader4["ServNombre"].ToString() + "' type='checkbox' value='" + reader4["ServNombre"].ToString() + "' name='" + reader4["ServNombre"].ToString() + "' <b>onclick=""javascript:__doPostBack('asignar',' " & reader4["ServId"] &"');""</b>>";
Servicios.Text+=reader4["ServNombre"].ToString();
Servicios.Text+="<br>";
}
else
{
Servicios.Text+="<input class='checkbox' id='" + reader4["ServNombre"].ToString() + "' title='" + reader4["ServNombre"].ToString() + "' type='checkbox' CHECKED value='" + reader4["ServNombre"].ToString() + "' name='" + reader4["ServNombre"].ToString() + "' <b>onclick=""javascript:__doPostBack('quitar','" & reader4["ServId"] &"');""</b>>";
Servicios.Text+=reader4["ServNombre"].ToString();
Servicios.Text+="<br>";
}

Y luego en tu code tratar el postback en el page load

if ispostback then

if request.form("__eventtarget") = "asignar"
.....
end if
..
end if

Entiendes lo que quiero decir??
  #9 (permalink)  
Antiguo 10/05/2005, 04:23
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Si lo veo

Si que veo lo que me kieres decir pero no me he debido de explicar bien xq lo que yo kiero es ke el realice todos los cambio y una vez lo tenga todo hecho le de a un boton de actualizar que tengo y me lo actualiza en la base de datos.

TE dije ke el post este:
http://www.forosdelweb.com/showthread.php?t=296296
esta mal xq no es de lo que hablamos
  #10 (permalink)  
Antiguo 10/05/2005, 04:28
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Coño, perdona es verdad tio, lo siento, este es el bueno (me rayao a pinchar en el link, y le he dado al de arriba de mi panel de control)

http://www.forosdelweb.com/f29/datagrid-actualizar-solo-datos-columna-290998/

Fijate sobre todo a partir de la pagina2, puesto que la primera es de preparación.

Suerte!!!! y si tienes dudas ya sabes....
  #11 (permalink)  
Antiguo 10/05/2005, 04:51
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Problema

Pues la verdad es ke me estan surgiendo muchas dudas xq lo del doPostBack es nuevo para mi.
Segun entiendo tengo que poner el boton de actualizar: javascript:__doPostBack('guardar','document.getEle mentById('iddelipunt').value');

Y luego un input invisible al lado del check.
Pero no entiendo bien como va esto.


<input id="micheck" type="checkbox" onclick='javascript:add(<%# DataBinder.Eval( Container.Dataitem , "DNI" ) %>);' />
para los check

<input onclick="var p=document.getElementbyId('text').value;javascript :__doPostBack('Guardar',p)" type="button" value="Guardar" />
para el boton actualizar.

Ademas mi boton de actualizar es de tipo: <asp:linkbutton> (cosas del diseñador)

Última edición por Nombela; 10/05/2005 a las 05:02
  #12 (permalink)  
Antiguo 10/05/2005, 05:04
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Haber vamos por pasos, lo primero es explicar la función add,

lo que haces es agregar o quitar los ids que se quieran (en tu caso sería ServId) a un input de tipo text para almacenar del lado del cliente, que checks han sido seleccionados.

Segundo, cada check tiene en su función onclick, una llamada a add. En tu caso creo que sería:

if (reader4["UsServIdUs"].ToString()=="")
{
Servicios.Text+="<input class='checkbox' id='" + reader4["ServNombre"].ToString() + "' title='" + reader4["ServNombre"].ToString() + "' type='checkbox' value='" + reader4["ServNombre"].ToString() + "' name='" + reader4["ServNombre"].ToString() + "' <b>onclick=""javascript:add(" & reader4["ServId"] &");""</b>>";
Servicios.Text+=reader4["ServNombre"].ToString();
Servicios.Text+="<br>";
}
else
{
Servicios.Text+="<input class='checkbox' id='" + reader4["ServNombre"].ToString() + "' title='" + reader4["ServNombre"].ToString() + "' type='checkbox' CHECKED value='" + reader4["ServNombre"].ToString() + "' name='" + reader4["ServNombre"].ToString() + "' onclick=""javascript:add(" & reader4["ServId"] &");"">";
Servicios.Text+=reader4["ServNombre"].ToString();
Servicios.Text+="<br>";
}


Y por último tenemos el botón actualizar, que lo que hace es llamar al server y le manda los valores del input text, para que el server sepa cuales son los checked que han sido seleccionados.

es decir, input invisibles sólo tienes que poner uno. Y lo de los check es como los creas en el code añadiendo el onclick.

¿Más claro??
  #13 (permalink)  
Antiguo 10/05/2005, 05:22
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Mas claro

Vale entiendo el mecanismo que quieres usar pero por ejemplo el reader4["ServId"] no me lo reconoce a lo mejor se lo tengo que añadir a la sql.

Y luego el input invisible no veo donde hay que ponerlo supongo que dara igual entonces.
Y el boton de actualizar no veo bien como ponerlo, entiendo que lo que hace es pasar al server los valores de los check para luego en el onload recogerlos y poder actualizar la base de datos.
Me equivoco????
Me podrias echar una manita mas
  #14 (permalink)  
Antiguo 10/05/2005, 07:04
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Algo hemos avanzado

Vale ya consigo que cuando el usuario pincha uno de los combos seleccionados le diga cual es es id del servicio que ha seleccionado.
Pero cuando selecciona uno en blanco tendria que decirle tb cual es ese servicio pero me pone que es undefined xq sera????

Y luego me queda el boton actualizar que no se yo muy bien como va???
  #15 (permalink)  
Antiguo 10/05/2005, 07:09
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
el boton guardar lo que hace es ,recoge lo que hay en el imput text y lo mada al server.
Esto lo haces en e lonclick del boton pasandole ala funcion de javascript __dopostback lso valores que kieres pasar al servidor
luego en el page load puede recoger estos valores con una simple linea d ecodigo,esto viene en el tema q estubimos tratando jose y yo y q te ha dejao la direccion.
Entonces la idea del boton actulizar es simplemente recoger un string q este en un texbox dond evenga los ids y el valro de los checks.
Por ejemplo que ese string este asi:
1 true,2 false
este lo podras luego separar muy facil con la funcion split
aki hay un direccion
http://www.elguille.info/colabora/pu...arPostBack.htm
ejemplo de __dopostback esplicado
  #16 (permalink)  
Antiguo 10/05/2005, 07:26
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
problema

El problema que tengo ahora es el que he puesto antes y es que cuando cliko en un chek que esta seleccionado si que sabe el id pero cuando cliko en uno que no esta seleccionado no sabe el id.

A parte se puede utilizar un link button para el boton de actualizar???

Última edición por Nombela; 10/05/2005 a las 07:39
  #17 (permalink)  
Antiguo 10/05/2005, 07:42
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
Estoy un poco perdido con lo que kieres hacer,no entiendo por que los metes en input (lado del cliente )lo que son los checkbox y el boton de actualizar tiene qeu ser <aps:linkbutton> es decir un web control ¿¿¿ ???
De todas formas seguramente me he perdido bastante el hilo y jose sepa lo q kieres y entonces por que haces esto...
Me parece too mucho lio,se podria facilitar mas trabajando todo en el servidor o en el lado del cliente,la idea dependera si despues de ahcer la consulta trabajas eln la misma pagina o eso lo mandas a otra (el html que creas con la consulta....)
si utilizas un asp:tutton para actualizar no vas a poder segun lo que estubimos mirando con Jose_minglein2 para mi ejercicio anterior
  #18 (permalink)  
Antiguo 10/05/2005, 08:06
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Recuerdo

No se si te acuerdas que jose me hizo una consulta en sql que era la ostia, pues de esa consulta se sacan los check box si estam marcados o no segun si el usuario tiene el servicio o no.
La cuestion es que aparte de los checkbox que estan del lado del cliente xq son input hay tb datos del usuario que estan del lado del servidor, entonces el boton actualizar esta del lado del servidor para los datos del usuario, y ahora lo que falta es hacer la actualizacion del lado del cliente. Y keria usar el mismo boton pero xq lo que dices no es posible no?????
  #19 (permalink)  
Antiguo 10/05/2005, 08:13
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
la idea esta en qeu un web control,con el asp:button esta en el servidor,nosotros cuando lo pichamos se recarga la pagina ,cuando se recarga la pagina s epierden la valores del so controles html (que estan en el lado del cliente), entonces tube que utilizar un boton que estubiera en el lado del cliente para utilizando javascript (__dopostback) pasar los datos al servidor,cosa que segun me comento jose no s epuede hacer con un web control,de aki el lio este,por eso te comentaba que por q no haber utilizado unos drops y unos checks de tipo web controls,a los que puede modificar el cliente y no pierden el valor en la recarga ???? ypero que si kieres ahcer asi necesitaras un imput button.
  #20 (permalink)  
Antiguo 10/05/2005, 08:17
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Label

El problema esta en que los check estab dentro de label de ahi lo de codigo embedido o como se diga. Es decir los check se pintan asi:

Servicios.Text+="<input class='checkbox' onclick='javascript:add(" + reader4["UsServIdServ"] +");' id='" + reader4["ServNombre"].ToString() + "' title='" + reader4["ServNombre"].ToString() + "' type='checkbox' value='" + reader4["ServNombre"].ToString() + "' name='" + reader4["ServNombre"].ToString() + "'>";
Servicios.Text+=reader4["ServNombre"].ToString();
Servicios.Text+="<br>";
De ahi que tengan que ser controles web xq no se si se pueden pintar asi directamente como controles de servidor. Me entiendes????
  #21 (permalink)  
Antiguo 10/05/2005, 09:09
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
Precisamente ahora estoy intentando crear un datagrid que depende de las columans que eliga el cliente,pero que debo manejar las columnas manualmente por que lso checkox por ejemplo tendran un onclick.... las fechas tendran un tipo d efromato.... y ando intentando crear el asp:datagrid asi que q ... lo primero que eh intentado es recordando mis tiempso de jsp meter too en una cadena y esta mostrarla en el html de otra pagina pero me peta...
ademas es q me da un erro de flipar
potentially dangerous Request.QueryString value was detected from the client (cadena=" <asp:DataGrid id='Da...").
Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. You can disable request validation by setting validateRequest=false in the Page directive or in the configuration section. However, it is strongly recommended that your application explicitly check all inputs in this case.
  #22 (permalink)  
Antiguo 10/05/2005, 09:14
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
jejejejej

Eso me dio a mi una vez y tambien lo flipe pero es facil de resolver, en el web config tienes que poner:

<system.web>

<pages validateRequest="false"/>
  #23 (permalink)  
Antiguo 10/05/2005, 09:17
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Buenas, perdonad pero he estado ocupado,

un linkbutton si puedes usar, pero si te da igual, pones un <a href="javascript:__doPostBack('guardar',document.. ..etc

que hace lo mismo que un link button
  #24 (permalink)  
Antiguo 10/05/2005, 09:21
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Bien (Neivan, ponlo en otro post, que no nos liemos), lo de los checks, estamos todos de acuerdo, en que sean inputs, así pues te recomiendo 2 cosas, la primero en la función add no pongas reader4["UsServIdServ"], porque si no, como dices te dará que los que no existen son nulls, pon directamente (al igual que cojes el nombre del servicio su id de la tabla servicio), si no recuerdo mal reader4["ServId"] y lo añades a los datos que devuelve la consulta mencionada.
  #25 (permalink)  
Antiguo 10/05/2005, 09:22
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
ya pero segun entiendo no es bueno hacer esto pos seguridad para que el cliente no te meta codigo ,en teoria un cliente malicaioso no deberia poder pasar dela validacion pero si pasa la puede liar gorda metiendo codigo a traves de la url que es atraves de donde mando el codigo del datagrid a la otra apgina.
Antes habia probado a poner el datagrid,en las clumns todas las columans con un if en escrptles ( <% %>) recogiendo las columans q ha elegido antes con el request para os ifs estos pero me daba error en todo scrple de esos que ponia dentro del datagrid.....
Por eso le estaba dando vueltas a lo que me dices que no se puede hacer codigo embebido(q no se lo que es eso ¿¿¿ ??) de un web control
  #26 (permalink)  
Antiguo 10/05/2005, 09:23
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
mi intencion no era d emomento pedir ayuda lo que pasa es que como me ha comentao lo de meter codigo de web controls dependiendo de una consulta.. le he comentao lo q estabab ahceindo
  #27 (permalink)  
Antiguo 10/05/2005, 09:23
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Lo de que hay que trabajar en el server para actualizar los datos, tambien estamos todos de acuerdo, y esto es por lo que haciamos <input type="button" onclick="....

pero para tu caso

<a href="javascript:;" onclick="__doPostBack..">Lo que sea</a>
aunque como he dicho creo que vale
<a href="javascript:__doPostBack....

ok???Mas claro????Sigamos que me picais me picais y paso media tarde en el foro!!!!!!!!!!!!!!!!!!!!!jejejejejeje
  #28 (permalink)  
Antiguo 10/05/2005, 09:28
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Bueno neivan, con respecto a lo que dices, porque no metes el datagrid en una variable de session en un datatable?????

2- Yo para esas cosas, encripto la url y la trato en todas y cada una de las páginas que reciben request.querystring, hace algo más pesada la aplicación pero en mi opinión más segura.
  #29 (permalink)  
Antiguo 10/05/2005, 09:29
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
<asp:linkbutton

En el boton este tengo ya metido este codigo para actualizar los datos del usuario:

private void actualizarusu(object sender, System.EventArgs e)
{
myConnection = new SqlConnection (connectionString);
string updateCmd;

if (ConfUsPass.Visible)
{
updateCmd = "UPDATE Usuarios SET UsNombre=@UsNombre,UsPass=@UsPass,UsMail=@UsMail,U sTelefono=@UsTelefono,UsIdPer=@UsIdPer where UsId=@UsId";
}
else
{
updateCmd = "UPDATE Usuarios SET UsNombre=@UsNombre,UsMail=@UsMail,UsTelefono=@UsTe lefono,UsIdPer=@UsIdPer where UsId=@UsId";
}
myCommand = new SqlCommand(updateCmd, myConnection);
myCommand.Parameters.Add(new SqlParameter("@UsId",
SqlDbType.Int, 4));
myCommand.Parameters["@UsId"].Value = ComboLogin.SelectedItem.Value;
myCommand.Parameters.Add(new SqlParameter("@UsNombre",
SqlDbType.NVarChar, 50));
myCommand.Parameters["@UsNombre"].Value = UsNombre.Value;
myCommand.Parameters.Add(new SqlParameter("@UsPass",
SqlDbType.NVarChar, 50));
myCommand.Parameters["@UsPass"].Value = UsPass.Value;
myCommand.Parameters.Add(new SqlParameter("@UsMail",
SqlDbType.NVarChar, 50));
myCommand.Parameters["@UsMail"].Value = UsMail.Value;
myCommand.Parameters.Add(new SqlParameter("@UsTelefono",
SqlDbType.NVarChar, 15));
myCommand.Parameters["@UsTelefono"].Value = UsTelefono.Value;
myCommand.Parameters.Add(new SqlParameter("@UsIdPer",
SqlDbType.Int, 4));
myCommand.Parameters["@UsIdPer"].Value = UsPerfil.SelectedItem.Value;
myCommand.Connection.Open();
try
{
if ((ConfUsPass.Visible) && (UsPass.Value!=ConfUsPass.Value))
MsgBox1.alert("El password no es correcto");
else
{
int numreg=myCommand.ExecuteNonQuery();
//updateservicios();
Response.Redirect("MenuadministradorUsu.aspx?Oku=1 &Nombre="+Request.QueryString["Nombre"].ToString()+"&Id="+Request.QueryString["id"].ToString()+"&mod="+ComboLogin.SelectedItem.Value) ;
//Response.Redirect("Menuadministrador1.aspx?Oku=1&m od="+nombre.Text);
}
}

Entonces como deberia hacer para actualizar ahora los check???
  #30 (permalink)  
Antiguo 10/05/2005, 09:42
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Una vez eso, los cortas y lo pegas a un procedimiento que llamaremos CambiaServicios
en el page_load pondremos

if ispostback
if request.form.item("__eventtarget") = "guardar"
dim identificadores as string = request.form.item("__eventargument")
dim arrayidentificadores as array = identificadores.split("")
CambiaServicios(arrayidentificadores)
'Aqui no se si iria "" o " ", Neivan te lo podrá confirmar


end if
endif

private sub CambiaServicios(byval arr as array)

'Aqui tu code anterior

'Y ahora puedes hacer esto

dim sql as string
dim i as integer = 0
while i< arr.length
if i=0
sql = " where UsServIdServ<>" & arr(i)
else
sql += " and UsServIdServ<>" & arr(i)
end if
i+=1
endwhile

sql = "Delete from UsuariosServicios " + sql + " and UsServIdUs=" & ComboLogin.SelectedItem.Value

myCommand.Connection.Open();
mycommand.text = sql 'Creo que es text, pero bueno, el que indique la instrucción



'Con esto lo que hacemos es borrar los servicios que se hayan desquitado del listado

'Queda insertar los que se hayan seleccionados nuevos
end sub
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:43.