2009-12-13 31 views
10

हैलो आप सभीऑब्जेक्टडेटा स्रोत

मैं ऑब्जेक्टडेटा सॉस की पंक्ति गणना कैसे प्राप्त कर सकता हूं?

मैं ऑब्जेक्टडेटा स्रोत और डेटालिस्ट का उपयोग करता हूं। मैं उपयोगकर्ता को कुछ चीज़ दिखाना चाहता हूं उदाहरण के लिए लेबल में जब ऑब्जेक्टडेटा स्रोत द्वारा लौटाई गई कुछ पंक्ति होती है। स्थिति में से एक है जब कोई रिकॉर्ड नहीं है।

धन्यवाद।

उत्तर

7

मैं एक ही जवाब के लिए देख रहा था ... एक अन्य समाधान मैं का उपयोग कर समाप्त हो गया निम्नलिखित है। यह डेटास्रोत की "चयनित" घटना को संभालता है।

Protected Sub ObjectDataSource1_Selected(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs) Handles ObjectDataSource1.Selected 
    ' Select data for rowcount 
    Dim dt As DataTable = e.ReturnValue 
    ' Set row count label 
    Me.lblCount.Text = dt.Rows.Count.ToString 
End Sub 
7

ObjectDataSource कुल पंक्ति गणना पाने के लिए सीधा तरीका नहीं है। इसके कारणों में से एक यह है कि यदि आप चाहते हैं कि कुल पंक्ति गणना हो तो आपको डेटा स्रोत की आवश्यकता नहीं है! पंक्ति संख्या सिर्फ अपने व्यापार तर्क लेयर (BLL) से बात करके दिखाने के लिए कुल पंक्तियों को मिलती है: जब डेटा बाध्य नियंत्रण

MyBLL bll = new MyBLL(); 
int customerRowCount = bll.Customers.GetRowCount(); 

ObjectDataSource करता एक SelectCountMethod कि इस्तेमाल किया जा सकता है इस तरह के GridView का उपयोग करने की जरूरत के रूप में कुल पंक्ति गणना। हालांकि, इसका उपयोग केवल चयन ऑपरेशन करने के दौरान किया जाता है। यही है, केवल पंक्ति गणना प्राप्त करने का कोई तरीका नहीं है। पंक्ति गणना केवल तभी उपयोग की जाती है ताकि डेटा बाध्य नियंत्रण एक पेजर नियंत्रण प्रदर्शित कर सके - इसका उपयोग किसी और चीज़ के लिए नहीं किया जाता है।

0

आप इसे एक पेजर टेम्पलेट का उपयोग करके बहुत आसानी से प्राप्त कर सकते हैं उदा।

 <asp:DataPager PagedControlID="PagedControlId" PageSize="20" QueryStringField="QueryStringName" ID="InfoPager" runat="server"> 
      <Fields> 
       <asp:TemplatePagerField> 
        <PagerTemplate> 
         Showing results 
         <%=InfoPager.StartRowIndex + 1 %> 
         to 
         <%= (new []{(InfoPager.StartRowIndex + InfoPager.PageSize),InfoPager.TotalRowCount}) 
             .OrderBy(x => x) 
             .First()%> 
         of 
         <%=InfoPager.TotalRowCount %> 
        </PagerTemplate> 
       </asp:TemplatePagerField> 
      </Fields> 
     </asp:DataPager> 

यह अंतिम पृष्ठ के लिए चेक सहित "परिणाम x से y z" टेक्स्ट का उत्पादन करेगा। यह एक .aspx पेज के पीछे एक .VB फ़ाइल पर पाया जाता है:

चीयर्स,

एड

3

मिले इस here:

bool bGetSelectCount; 
protected void ObjectDataSource1_Selected(object sender, ObjectDataSourceStatusEventArgs e) 
{ 
    if (bGetSelectCount) 
     TextBox1.Text = e.ReturnValue.ToString(); 
} 

protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e) 
{ 
    bGetSelectCount = e.ExecutingSelectCount; 
} 
0
Protected Sub objItemsList_Selected(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs) Handles objItemsList.Selected 
    lblMessage.Text = DirectCast(e.ReturnValue, DataTable).Rows.Count & " record(s) found" 
End Sub 
+1

में आपका स्वागत है objectdatasource_selected घटना में पंक्ति संख्या प्राप्त stackoverflow करने के लिए! पोस्ट सटीकता को बेहतर बनाने के लिए नमूना कोड के लिए संक्षिप्त विवरण प्रदान करना हमेशा बेहतर होता है :) –

0

मेरे मामले में ObjectDataSource एक डाटासेट है, इसलिए मैं इस तरह

e.ReturnValue.tables(0).rows.count.ToString 
0
Protected Sub myODS_Selected(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs) Handles myODS.Selected 
    Dim s As String = e.ReturnValue.ToString 
    Dim rows As Integer 
    Int32.TryParse(s, rows) 

    'rows variable now holds the total number of results, not just what's displayed on the current gridview page 
End Sub