В моей таблице первая строка пуста, а последняя отсутствует на странице ASPX - PullRequest
0 голосов
/ 20 января 2020

Я пытался проверить данные и они содержат все строки в режиме отладки, но когда я пытаюсь отобразить, первая строка пуста, а последняя отсутствует.

вот вид таблицы: here is the view of the table

<table class="table table-bordered table-striped table-hover ">
<thead style="text-align-last: center; background-color: black; color: white">
    <th>Id</th>
    <th>Company</th>
    <th>City</th>
    <th>Opening Balance</th>
</thead>
<tbody id="myTable" style="text-align: center;">
    <%if (!object.Equals(ds.Tables[0], null))
                                            {
                                                if (ds.Tables[0].Rows.Count > 0)
                                                {%>
    <% for (int i = 0; i < ds.Tables[0].Rows.Count; i++)%>
    <%{ %>
    <tr>
        <td>
            <asp:label id="L1" runat="server" text=""></asp:label>
            <% L1.Text = ds.Tables[0].Rows[i]["com_id"].ToString(); %></td>
        <td>
            <asp:label id="L2" runat="server" text=""></asp:label>
            <% L2.Text = ds.Tables[0].Rows[i]["company_name"].ToString(); %></td>
        <td>
            <asp:label id="L3" runat="server" text=""></asp:label>
            <% L3.Text = ds.Tables[0].Rows[i]["openbal"].ToString(); %></td>
        <td>
            <asp:label id="L4" runat="server" text=""></asp:label>
            <% L4.Text = ds.Tables[0].Rows[i]["city"].ToString(); %></td>
    </tr>
    <% }
                                                }
                                            }%>
</tbody>

C# код:

public static Cmd(string q)
{
    con.Open();
    SqlDataAdapter command = new SqlDataAdapter(q, ConSetting.con);
    command.SelectCommand.CommandType = CommandType.StoredProcedure;
    con.Close();
    DataSet ds = new DataSet();
    command.Fill(ds);
}

Ответы [ 2 ]

1 голос
/ 20 января 2020

Можете ли вы попробовать это с Foreach

<% foreach (DataRow dr in ds.Tables[0].Rows)%>
    <%{ %>
    <tr>
        <td>
            <asp:label id="L1" runat="server" text=""></asp:label>
            <% L1.Text = dr["com_id"].ToString(); %></td>
        <td>
            <asp:label id="L2" runat="server" text=""></asp:label>
            <% L2.Text = dr["company_name"].ToString(); %></td>
        <td>
            <asp:label id="L3" runat="server" text=""></asp:label>
            <% L3.Text = dr["openbal"].ToString(); %></td>
        <td>
            <asp:label id="L4" runat="server" text=""></asp:label>
            <% L4.Text = dr["city"].ToString(); %></td>
    </tr>
    <% }
0 голосов
/ 20 января 2020

Я сделал что-то вроде этого, который отлично работает. но все еще не понимает, почему вышеприведенный не работает.

C#

 if (!object.Equals(ds.Tables[0], null))
 {
     if (ds.Tables[0].Rows.Count > 0)
     {
         for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
         {
             htmlTable.Append("<tr>");
             htmlTable.Append("<td>" + ds.Tables[0].Rows[i]["com_id"] + "</td>");
             htmlTable.Append("<td>" + ds.Tables[0].Rows[i]["company_name"] + "</td>");
             htmlTable.Append("<td>" + ds.Tables[0].Rows[i]["openbal"] + "</td>");
             htmlTable.Append("<td>" + ds.Tables[0].Rows[i]["city"] + "</td>");
             htmlTable.Append("</tr>");
          }
             tabledata.Controls.Add(new Literal { Text = htmlTable.ToString() });
     }    
     else
     {
         htmlTable.Append("<tr>");
         htmlTable.Append("<td align='center' colspan='4'>There is no Record.</td>");
         htmlTable.Append("</tr>");
      }
  }

.aspx

<table class="table table-bordered table-striped table-hover ">
    <thead style="text-align-last: center; background-color: black; color: white">
        <th>Id</th>
        <th>Company</th>
        <th>Opening Balance</th>
        <th>City</th>
    </thead>
        <tbody id="myTable" style="text-align: center;">
            <asp:PlaceHolder ID="tabledata" runat="server"></asp:PlaceHolder>
        </tbody>
</table>
...