Los ObjectDataSource soportan por default diferentes tipos de parámetros, como controles, cookies, Form, QueryString, Profile y Session. Sin embargo si quieres pasar como parámetro el UserName del usuario logueado no lo puedes hacer con ninguno de los tipos antes mencionados.

Para hacerlo debes utilizar el evento Selecting del ObjectDataSource.

Esto funciona así, aquí­ tenemos el ObjectDataSource:

  1. <asp:ObjectDataSource
  2.     ID="ODSEjemplo"
  3.     runat="server"
  4.     OldValuesParameterFormatString="original_{0}"
  5.     SelectMethod="GetData"
  6.     TypeName="BLLObtenerDatos">
  7. </asp:ObjectDataSource>

Fí­jate como no hemos incluido ningún parámetro. Éste lo generamos en el code-behind:

  1. Protected Sub ODSEjemplo_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ObjectDataSourceSelectingEventArgs) Handles ODSEjemplo.Selecting
  2.      e.InputParameters("MiParametro") = User.Identity.Name
  3. End Sub

Nótese que en el ejemplo, el método GetData recibe un sólo parámetro de tipo String, mismo que coincide con el tipo de User.Identity.Name

Así­ de sencillo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


ocho + 2 =