0

WCF サービスを使用してデータをグリッドビューに表示していますが、正しく表示されません (列が順不同で表示されます)

以下は、IList オブジェクト コードに追加するプロパティを含む別のクラス ファイルです。

    Class1.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;

    namespace ServiceTest
    {
        public class Class1
        {
            public int index { get; set; }
            public string name { get; set; }
            public int id { get; set; }
        }
    }

これはサービスインターフェースです

IService1.cs

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.Collections;

namespace ServiceTest
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface IService1
    {


        [OperationContract]
      IList<Class1> GetD();

    }
}

これは、System を使用して IService.cs Service1 を実装するサービス クラスです。System.Collections.Generic の使用; System.Linq を使用します。System.Runtime.Serialization の使用; System.ServiceModel の使用; System.ServiceModel.Web の使用; System.Text を使用します。System.Collections を使用します。

namespace ServiceTest
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
    // NOTE: In order to launch WCF Test Client for testing this service, please select Service1.svc or Service1.svc.cs at the Solution Explorer and start debugging.
    public class Service1 : IService1
    {


        public IList<Class1> GetD()
        {


            IList<Class1> lst = new List<Class1>();
            for (int i = 0; i < 50; i++)
            {
                Class1 c = new Class1();
                c.index = i;
                c.name = "Madhavi " + i;
                c.id = i + 1;
                lst.Add(c);
            }
            return lst;
        }

    }
}

以下は、1 つの gridview データバインド コントロールを持つコンシューマー コードです。そして消費者コード

 protected void Page_Load(object sender, EventArgs e)
    {
        //IList i = new ArrayList();
        Service1Client s = new Service1Client();
       // i = s.GetD();
        GridView1.DataSource = s.GetD();
        GridView1.DataBind();
    }
4

1 に答える 1

0

AutoGenerateColumnsに を設定したtrueかのように聞こえますGridView1.aspx代わりに、これらの列を表示する順序でファイル内の列を明示的に指定し、各列をデータソースの適切なフィールドにバインドしてみてください。

<asp:GridView runat="server" id="GridView1">
     <Columns>
     </Columns>
</GridView>
于 2013-07-25T08:28:25.257 に答える