2013-03-22 173 views
0

我有一個網格視圖,存儲過程設置在SQL.I有三個控件2 dropdown list'stexbox與jQuery日期選擇器。我的問題是gridview沒有顯示在頁面加載。但是,當我開始添加控件時,gridview突然顯示。從調試,我推測,與jQuery的日期選擇器的文本框沒有通過NULL值到指定的存儲過程,但我還是想知道,如果它是cause.This是代碼..在頁面上顯示網格視圖加載

.aspx的代碼

<div class="datarange"> 
     <asp:DropDownList ID="categoryDDL" AutoPostBack="true" AppendDataBoundItems="true" runat="server"> 
      <asp:ListItem Text="Select Category" Value=" " /> 
     </asp:DropDownList> 
     <asp:DropDownList ID="brokerDDL" AutoPostBack="true" runat="server"></asp:DropDownList> 
     <asp:TextBox ID="openDate" AutoPostBack="true" runat="server"></asp:TextBox> 

    </div> 
    <br /> 
    <%-- SQL DATA SOURCE PARAMETERS --%> 
    <asp:SqlDataSource ID="SqlRAListings" runat="server" ConnectionString="<%$ ConnectionStrings:kmc_SalesPipelineConnectionString %>" SelectCommand="RecentlyAddedListings" SelectCommandType="StoredProcedure"> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="categoryDDL" Name="Category" PropertyName="SelectedValue" Type="String" DefaultValue=" " /> 
      <asp:ControlParameter ControlID="brokerDDL" Name="Broker" PropertyName="SelectedValue" Type="String" DefaultValue=" Select Employee" /> 
      <asp:ControlParameter ControlID="openDate" Name="OpenDate" PropertyName="Text" Type="DateTime" DefaultValue="" /> 
     </SelectParameters> 
    </asp:SqlDataSource> 
    <%-- END OF SQL DATA SOURCE PARAMETERS --%> 


    <%-- GRIDVIEW FOR DISPLAYING RECENTLY ADDED LISTINGS --%> 
    <asp:GridView ID="ralGridView" runat="server" AllowSorting="True" AutoGenerateColumns="False" OnSelectedIndexChanged="ralGridView_SelectedIndexChanged"> 
     <Columns> 
      <asp:TemplateField HeaderText="Opportunity"> 
       <ItemTemplate> 
        <a href="/management/opportunity.aspx?id=<%# Eval("ID") %>" target="_blank"> 
         <%# Eval("Opportunity").ToString() != "" ? Eval("Opportunity") : "Opportunity" %> 
        </a> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:BoundField DataField="ID" HeaderText="ID" 
       SortExpression="ID" InsertVisible="False" ReadOnly="True" /> 
      <asp:BoundField DataField="Category" HeaderText="Category" 
       SortExpression="Category" /> 
      <asp:BoundField DataField="Contact Name" HeaderText="Contact Name" 
       SortExpression="Contact Name" /> 
      <asp:BoundField DataField="Employee" HeaderText="Employee" SortExpression="Employee" /> 
      <asp:BoundField DataField="Open Date" HeaderText="Open Date" SortExpression="Open Date" /> 
      <asp:TemplateField HeaderText="Opportunity from"> 
       <ItemTemplate> 
        <%# Eval("LeadID").ToString().Length > 0 == true ? "Lead System" : "Personal Lead" %> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 

    <asp:SqlDataSource ID="SqlDbRAListings" runat="server" ConnectionString="<%$ ConnectionStrings:kmc_SalesPipelineConnectionString %>" SelectCommand="RecentlyAddedListings" SelectCommandType="StoredProcedure"> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="categoryDDL" Name="Category" PropertyName="SelectedValue" Type="String" /> 
      <asp:ControlParameter ControlID="brokerDDL" Name="Broker" PropertyName="SelectedValue" Type="String" /> 
      <asp:ControlParameter ControlID="openDate" Name="OpenDate" PropertyName="Text" Type="DateTime" /> 
     </SelectParameters> 
    </asp:SqlDataSource> 
    <%-- END OF GRID VIEW --%> 
</form> 

<script type="text/javascript"> 
    $(function() { 
     var dates = $("#openDate").datepicker({ 
      defaultDate: "+1w", 
      changeMonth: false, 
      numberOfMonths: 1 
     }); 
    }); 

</script> 

C#代碼

namespace KMCWebLMS 
{ 
    public partial class RecentlyAssignedLead : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!Page.IsPostBack) 
      { 
       fillCategoryDropDown(); 
       fillBrokerDropDown(); 
      } 
      else 
      { 
       ralGridView.DataSource = SqlDbRAListings; 
       ralGridView.DataBind(); 
      } 
     } 

     public void fillCategoryDropDown() 
     { 
      DataTable categories = new DataTable(); 
      string command = @"SELECT LeadCategory FROM LeadCategory ORDER BY LeadCategory"; 
      ConnectSQL cmd = new ConnectSQL(); 
      SqlDataAdapter adapter = new SqlDataAdapter(cmd.configureSQL(command)); 
      adapter.Fill(categories); 

      try 
      { 
       categoryDDL.DataSource = categories; 
       categoryDDL.DataTextField = "LeadCategory"; 
       categoryDDL.DataValueField = "LeadCategory"; 
       categoryDDL.DataBind(); 
      } 
      catch 
      { 

      } 
     } 

     public void fillBrokerDropDown() 
     { 
      DataTable employees = new DataTable(); 
      string command = @"SELECT TOP 100 [Emp_Name] FROM [kmc_SalesPipeline].[dbo].[vwEmployees] ORDER BY Emp_Name"; 
      ConnectSQL cmd = new ConnectSQL(); 
      SqlDataAdapter adapter = new SqlDataAdapter(cmd.configureSQL(command)); 
      adapter.Fill(employees); 
      try 
      { 
       brokerDDL.DataSource = employees; 
       brokerDDL.DataTextField = "Emp_Name"; 
       brokerDDL.DataValueField = "Emp_Name"; 
       brokerDDL.DataBind(); 
      } 
      catch 
      { 

      } 
     } 

     protected void ralGridView_SelectedIndexChanged(object sender, EventArgs e) 
     { 

     } 
    } 

回答

0

我已經找到了解決問題的辦法。爲此,我在代碼隱藏中聲明瞭存儲過程所需的參數,並將其設置爲相應的參數。

//STORED PROCEDURE PARAMETERS 
cmd.Parameters.AddWithValue("@OpenDate", OpenDate); 
cmd.Parameters.AddWithValue("@Broker", broker); 
cmd.Parameters.AddWithValue("@Category", category); 

程序會在page_load上顯示默認值,顯示gridview中的所有數據。在回發時,指定的參數將被設置爲當前存儲在特定控制參數中的值。

broker = brokerDDL.SelectedValue; 
category = categoryDDL.SelectedValue; 
ralGridView.DataSource = CreateRecentlyAddedTable(); 
ralGridView.DataBind(); 
0

但是從後面的代碼,您似乎只在回傳填充GridView控件。
對於PageLoad,您只是填充下拉菜單。

不應該在該代碼來

ralGridView.DataSource = SqlDbRAListings; 
       ralGridView.DataBind(); 

if (!Page.IsPostBack) 
+0

對不起,它沒有工作 – 2013-03-23 11:28:51