2010-11-24 4 views
0

Je suis nouveau sur le Web.Aide pour DetailsView

En ce moment j'ai un DetailsView d'un seul client ... ce que je veux, c'est que avant que la vue est affichée, si le client n'a pas un email défini, rediriger vers une page différente .. comment puis-je obtenir les données de l'objectdatasource et rediriger?

aide s'il vous plaît.

Voici mon ObjectDataSource

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
     InsertMethod="Insert" OldValuesParameterFormatString="original_{0}" 
     SelectMethod="GetDataByCodigo" 
     TypeName="PanamaBanks.DataSetTableAdapters.ClientesTableAdapter"> 
     <InsertParameters> 
      <asp:Parameter Name="Codigo" Type="String" /> 
      <asp:Parameter Name="CodigoBanco" Type="String" /> 
      <asp:Parameter Name="Nombre" Type="String" /> 
      <asp:Parameter Name="Apellido" Type="String" /> 
      <asp:Parameter Name="Negocio" Type="String" /> 
      <asp:Parameter Name="Email" Type="String" /> 
      <asp:Parameter Name="Telefono" Type="String" /> 
     </InsertParameters> 
     <SelectParameters> 
      <asp:FormParameter DefaultValue="0" FormField="codigo" Name="Codigo" 
       Type="String" /> 
     </SelectParameters> 
    </asp:ObjectDataSource> 

Répondre

1

Vous pouvez vérifier la valeur des e-mails alors que DetailsView est binded aux données en attachant événement DataBound comme celui-ci: dans la page ASPX

<asp:DetailsView runat="server" ID="detailsView" 
      ondatabound="detailsView_DataBound"></asp:DetailsView> 

et dans le code derrière

detailsView_DataBound vide protégé (expéditeur d'objet, EventArgs e) { DetailsView view = (DetailsView) expéditeur;

DataRowView drv = (DataRowView)view.DataItem; 
if (drv != null) 
{ 
    if (Convert.IsDBNull(drv["Email"])) 
     //redirect - email column has null value 
     Redirect(); 

    if (drv["Email"].ToString().Trim() == string.Empty) 
     //redirect - email column is empty 
     Redirect(); 
} 

}

+0

Cela ressemble à ce dont j'ai besoin, mais je ne comprends toujours pas la valeur de la colonne e-mail de juste cela .... s'il vous plaît aider – ignaciofuentes

+0

si vous collez ici votre objectdatasource code puis je peux vous aider à trouver la colonne e-mail – Waqas

+0

J'ai modifié la question pour l'inclure – ignaciofuentes

-1

Faites ceci dans votre behind. Recherchez une valeur nulle dans le champ de l'e-mail et redirigez-la si elle est trouvée. Quelque chose comme ça (C#):

if(client.email==""){ 
    HttpContext.Current.Response.ReDirect("differentPage.aspx"); 
} 
+0

Im ne pas utiliser LINQ to SQL ... le Details.aspx a un contrôle DetailsView qui est mis en correspondance avec un ObjectDataSource d'une table de clients sur ma base de données .. Je ne pense pas que je peux faire "client.email" – ignaciofuentes

+0

Utilisez l'événement OnSelected. Voir cette question: http://stackoverflow.com/questions/389571/can-you-get-a-datatable-from-an-objectdatasource – ddrace