2010-11-24 89 views
0

進出口新的web表單。幫助DetailsView控件

現在我有一個DetailsView的單個客戶端...我想要的是,在顯示視圖之前,如果客戶端沒有定義電子郵件,重定向到不同的頁面..我如何獲取數據從objectdatasource並重定向?

幫助,請。

這裏是我的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> 

回答

1

您可以檢查電子郵件的價值,同時DetailsView控件正在被安裝DataBound事件像這樣綁定到數據:在aspx頁面

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

,並在後面的代碼

保護無效detailsView_DataBound(對象發件人,EventArgs的) { 的DetailsView視圖=(的DetailsView)發送者;

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(); 
} 

}

-1

在您的代碼隱藏做到這一點。檢查電子郵件字段中的空值,如果找到則重定向。像這樣(C#):

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

林不使用LINQ to SQL ...的Details.aspx具有被映射到客戶表的ObjectDataSource控件在我的數據庫DetailsView控件..我不認爲我可以做「client.email」 – ignaciofuentes 2010-11-24 06:56:34

+0

使用OnSelected事件。看到這個問題:http://stackoverflow.com/questions/389571/can-you-get-a-datatable-from-an-objectdatasource – ddrace 2010-11-24 07:31:12