数据未显示在网格中

Data not showing in the grid

我目前正在处理一个 .net 项目,我需要做的是从 Web 服务获取数据并将它们显示在网格中。由于某些原因,我不知道网格没有显示数据。 这是我的 aspx.cs 文件

    protected void radGridPensionList_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
    if (IsPostBack)
    {
        ArrayList list = new ArrayList();
        string ssn = txtSSN.Text.ToString();
        getMypensionListWS pensionList = new getMypensionListWS();

        myPensionerProfitList[] arrayOfPensionList = getPensionProfitList(ssn);

        for (int i = 0; i < arrayOfPensionList.Length; i++)
        {
            myPensionerProfitList ARRAY = arrayOfPensionList[i];
            DataTable dt = new DataTable(); //Get details

            list.Add(arrayOfPensionList);
        }
        radGridPensionList.DataSource = list;
    }
   }

和网格代码的aspx文件

                                 <telerik:RadGrid ID="radGridPensionList" runat="server" OnNeedDataSource="radGridPensionList_NeedDataSource" 
                                AllowFilteringByColumn="True" CellSpacing="-1" GridLines="Both" AutoGenerateColumns="false" >
                                <clientsettings allowcolumnsreorder="True">
                                    <Selecting AllowRowSelect="True" />
                                </clientsettings>

<%-- AutoGenerateColumns="true"--%>

                    <Columns>

                      <%--  <telerik:GridBoundColumn DataField="CUSTOMER_NO" UniqueName="Customer_No" Display="true">
                                        </telerik:GridBoundColumn>--%>
                         <telerik:GridBoundColumn DataField="PERSON_ID" HeaderText="PERSON_ID" UniqueName="PERSON_ID" Display="true">
                                        </telerik:GridBoundColumn>
                         <telerik:GridBoundColumn DataField="FIRST_NAME" HeaderText="FIRST_NAME" UniqueName="FIRST_NAME" Display="true">
                                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="FATHER_NAME" HeaderText="FATHER_NAME" UniqueName="FATHER_NAME" Display="true">
                                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="LAST_NAME" HeaderText="LAST_NAME" UniqueName="LAST_NAME" Display="true">
                                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="BIRTH_DATE" HeaderText="BIRTH_DATE" UniqueName="BIRTH_DATE" Display="true">
                                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="PFILE_CODE" HeaderText="PFILE_CODE" UniqueName="PFILE_CODE" Display="true">
                                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="FILE_TYPE" HeaderText="FILE_TYPE" UniqueName="FILE_TYPE" Display="true">
                                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="BIRTH_DAPFILE_DOCUMENT_IDTE" HeaderText="PFILE_DOCUMENT_ID" UniqueName="PFILE_DOCUMENT_ID" Display="true">
                                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="PERIOD_ID" HeaderText="PERIOD_ID" UniqueName="PERIOD_ID" Display="true">
                                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="PERIOD_NAME" HeaderText="PERIOD_NAME" UniqueName="PERIOD_NAME" Display="true">
                                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="PO_CHECK" HeaderText="PO_CHECK" UniqueName="PO_CHECK" Display="true">
                                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="AMOUNT" HeaderText="AMOUNT" UniqueName="AMOUNT" Display="true">
                                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="PFILE_POP_ID" HeaderText="PFILE_POP_ID" UniqueName="PFILE_POP_ID" Display="true">
                                        </telerik:GridBoundColumn>

                    </Columns>
                    <PagerStyle AlwaysVisible="true" />
                </MasterTableView>

                            </telerik:RadGrid>

代码没有给出错误或异常。我可以看到网格将我的列表作为数据源,但是当我 运行 应用程序时我没有显示任何内容。 知道我哪里做错了吗?任何建议表示赞赏。

您的代码做了一些奇怪的事情。

  1. 不要使用 ArrayList。由于您可以向其中添加任何对象,因此很难看出您正在添加奇怪的东西(见下文)。请改用 List<T>,这样您就可以定义可以添加到列表中的内容。
  2. 您在循环中声明了 2 个未使用的变量(ARRAYdt)。
  3. 您多次将 相同的数组 添加到 list。我 怀疑 你只想将 items 添加到你的数组而不是数组本身:

更正这些问题后更新了代码:

if (IsPostBack)
{
    var list = new List<myPensionerProfitList>();
    string ssn = txtSSN.Text.ToString();
    getMypensionListWS pensionList = new getMypensionListWS();

    myPensionerProfitList[] arrayOfPensionList = getPensionProfitList(ssn);

    for (int i = 0; i < arrayOfPensionList.Length; i++)
    {
        myPensionerProfitList item = arrayOfPensionList[i];
        list.Add(item);
    }
    radGridPensionList.DataSource = list;
}

哪个应该工作。如果 确实 工作,您可以通过调用 array 上的 Linq ToList 方法来创建列表来简化它。或者,因为您可以很好地将数组绑定到数据网格,所以您根本不需要列表 :

if (IsPostBack)
{
    string ssn = txtSSN.Text.ToString();
    getMypensionListWS pensionList = new getMypensionListWS();

    myPensionerProfitList[] arrayOfPensionList = getPensionProfitList(ssn);

    radGridPensionList.DataSource = arrayOfPensionList;
}