我想把後端從SQL撈到的資料拋到前端,拋成功了
資料也正確,可是就是印不出來.....
以下是程式碼
HTML端:
<div class="content">
<%
var todo_list=myColumn();
String[] headerTxt = new String[10];
//我的list長度不固定,但這裡無法使用list.size()我要怎麼查list長度呢?
var i = 0;
foreach (var item in todo_list) {
headerTxt[i] = item;
// Response.Write(item);//東西會print出來,檢查過是我要的值
i++;
if (i == 9) { break; }
}
Response.Write(headerTxt[0]);
%>
<asp:Panel ID="gv" runat="server">
<asp:GridView ID="gvData" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="NUM" HeaderText="<%Response.Write(headerTxt[0]) %>"/>//但到這裡就無法print我要的值....
<asp:BoundField DataField="history" HeaderText="hist_seq" />
......
</Columns>
</asp:GridView>
</asp:Panel>
</div>
code behind:
public List<String> myColumn()
{
List<String> list = null;
MyTable q = new MyTable();
list = q.getColumn("20220813");//抓取SQL資料,今天的訂貨內容
return list;
}
謝謝大家
-- 更新
透過 RowDataBound 修改 HeaderText
.aspx
<asp:GridView ID="gvData" runat="server" AutoGenerateColumns="false" OnRowDataBound="gvData_RowDataBound">
<Columns>
<asp:BoundField DataField="wlth_lot_number" />
<asp:BoundField DataField="history" />
</Columns>
</asp:GridView>
.aspx.cs
public class Test
{
public string wlth_lot_number { get; set; }
public string history { get; set; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
var data = new List<Test>()
{
new Test(){ wlth_lot_number = "1", history = "h1" },
new Test(){ wlth_lot_number = "2", history = "h2" }
};
gvData.DataSource = data;
gvData.DataBind();
}
}
protected void gvData_RowDataBound(object sender, GridViewRowEventArgs e)
{
List<string> myColumn = new List<string>() { "Column1", "Column2" };
if (e.Row.RowType == DataControlRowType.Header)
{
for (int i = 0; i < e.Row.Cells.Count; i++)
e.Row.Cells[i].Text = myColumn[i];
}
}
結果
Column1 | Column2 |
---|---|
1 | h1 |
2 | h2 |
01.方法1
this.gvData.DataSource = " 你的資料來源 "
this.gvData.DataBind();
02.方法2
<table>
<thead>
<tr>
<td><!--表頭內容--></td>
</tr>
</thead>
<tbody>
<%
foreach(var item in todo_list)
{
%>
<tr>
<td><%=item%></td>
</tr>
<%
}
%>
</tbody>
</table>
PS:方法2的話,可以先將您的資料,轉成List< Model >,在藉由foreach,印出來,如果太難的話,可以回歸到方法1 (將資料轉換成Datatable)。
沒有用foreach可以嗎?我沒有要每筆印阿,我只是想抽特定的一些資料到不同的欄位顯示(欄位是分散的),所以我希望是用陣列的方式可以在a處塞headerTxt[0]的值,b處塞headerTxt[1]的值
用json當中介
server asp.net後端
List<string> ret = new List<string>();
ret.Add("aaaaaaaaaaa");
ret.Add("BBBBBBBBBBBB");
Response.Write(JsonConvert.SerializeObject(ret));
Response.End();
前端Javascript (個人不喜歡XMLHttpRequest,文縐縐....下例就用jquery)
$.post({
url: 'test.aspx',
dataType: 'json',
data: {
job : 'getdata'
}
})
.done(function(gotdata){
gotdata.each(function(i,v){
console.log(v) ; // 你會在F12的主控台內容裡看到伺服器傳回的aaaa BBBB...
};
})