0

ASPXにforループがあります

 for (i = 0; i < ds.Tables[0].Rows.Count; i++)
        {

            strFname += ds.Tables[0].Rows[i]["first_name"].ToString();
            strLname += ds.Tables[0].Rows[i]["last_name"].ToString();
            str = String.Format("{0} {1} ", strFname, strLname);


        }

FnameがFnameの隣にあり、次の行で同じ(最後まで)がすべての行で名が姓の隣になるようにしたい(すべての行で1つのFnameと1つのLnameのみ)次の行も同じです。どうすればいいですか?ありがとうございました!

4

4 に答える 4

1

完全なコードを表示しなかったため、これを全ページにどのように表示しているかわかりません。リピーター、グリッドビュー、リストビュー、またはカスタム表示コンテナーを使用できます。

以下は、ListViewを使用してそれを行う方法の例です。

Default.aspx:

<asp:ListView ID="lvData" runat="server" ItemPlaceholderID="phItem" OnItemDataBound="lvData_ItemDataBound">
  <LayoutTemplate>
    <table>
      <thead>
        <tr>
          <th>Fullname</th>
        </tr>
      </thead>
      <tbody>
        <asp:PlaceHolder ID="phItem" runat="server" />
      </tbody>
    </table>
  </LayoutTemplate>
  <ItemTemplate>
    <tr>
      <td><asp:Literal ID="litFullname" runat="server" /></td>
    </tr>
  </ItemTemplate>
</asp:ListView>

Default.aspx.cs

protected void lvData_ItemDataBound(object sender, ListViewItemEventArgs e)
{
  //Get the data item that was passed in, in this case which number for this row.
  var data = (int)e.Item.DataItem;

  //Create temp first and last names
  var firstName = "First" + data.ToString();
  var lastName = "Last" + data.ToString();

  //Display it to the listview
  var litFullname = (Literal)e.Item.FindControl("litFullname");
  litFullname.Text = string.Format("{0} {1}", firstName, lastName);
}
于 2012-11-19T17:40:00.220 に答える
1

Response.WriteHTML出力ストリームに出力します。http://msdn.microsoft.com/en-us/library/ms525585(v=vs.90).aspx

Response.write(str);

出力に省略表記を使用することもできます

<%= str %>

また

<%: str %>
于 2012-11-19T17:28:54.890 に答える
1

あなたの場合、コントロールを使用Repeaterする方が適しています。そのマークアップではtd、LastNameの横にFirstNametrを表示し、それらを連続して表示するために使用できます。を参照してください。

于 2012-11-19T17:30:50.267 に答える
0
str = String.Format("{0}&nbsp;{1}<br />", strFname, strLname);
于 2012-11-19T17:13:29.113 に答える