2013-02-13 17 views
12

Boş bir değeri saklı bir yordama geçirme konusunda sorun yaşıyorum, ör. açılır menüde bir seçenek belirlenmemişse, bu durum sqdatasource üzerinden veritabanına null olarak nasıl iletilebilir.<asp: ControlParameter - null değerini sqldatasource üzerinden DB'ye geçir

Şu anda, bir saklı yordamın sonuna geçmek için paramater değerlerini tuttuğum sayfamda bir dizi açılır denetim var.

Bu denetimlerden bazı değerler seçtiğimde, grid görünümü, olması gereken sonuçları gösterecektir, ancak değerlerin hiçbiri seçilmediğinde, n değerinin SP'ye iletilmesiyle ilgili sorun yaşıyorum. SP'yi kontrol ettim ve onu çalıştırdığımda ve null değerlerden geçtiğimde bana doğru sonuçları verir, böylece SP'den memnun olurum. Ben

hiçbir şans ile kontrol paramater içinde
ConvertEmptyStringToNull="true" DefaultValue="" 

ayarları denedim ve açılır yönettiği "TÜM" seçeneği

"" değeri vardır SqlDataSource kodudur:

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:scConnString %>" 
        SelectCommand="spGetOrgTickets" SelectCommandType="StoredProcedure" CancelSelectOnNullParameter="false"> 
        <SelectParameters> 
         <asp:SessionParameter Name="org_id" Type="Int32" SessionField="org_id" DefaultValue="" ConvertEmptyStringToNull="false" /> 
         <asp:ControlParameter ControlID="drpPriority" Name="priority_id" PropertyName="SelectedValue" 
          Type="Int32" ConvertEmptyStringToNull="true" DefaultValue="" /> 
         <asp:ControlParameter ControlID="drpStatus" Name="status_id" PropertyName="SelectedValue" 
          Type="Int32" ConvertEmptyStringToNull="true" DefaultValue=""/> 
        </SelectParameters> 
       </asp:SqlDataSource> 
açılan en hakkındaki

biri şudur:

      <asp:DropDownList Style="width: 100%" ID="drpStatus" runat="server" class="field select" 
           AppendDataBoundItems="True" AutoPostBack="True" DataSourceID="SqlDataSource2_Status" 
           DataTextField="status" DataValueField="status_id"> 
           <asp:ListItem Value="">All</asp:ListItem> 
          </asp:DropDownList> 

Herhangi bir fikir?

Teşekkür kriteri

cevap

26

... sadece SqlDataSource içinde = "false" CancelSelectOnNullParameter gerekir.

+3

bu bana çok yardımcı oldu. Kendini cevaplaman için thansk. Pek çok kişi bunu yapmıyor –

+2

Bu seçenek varsayılan olarak false olmalıdır. Bu seçeneğin farkında olmasa delilik bir zamanlayıcıdır. –

İlgili konular