看代码:
private void button1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add(Getcl("卖家名称", response.Trade.BuyerNick));
dt.Columns.Add(Getcl("交易编号", response.Trade.AlipayNo));
dt.Columns.Add(Getcl("商品价格", response.Trade.Price));
dataGridView1.DataSource = dt;
}
public DataColumn Getcl(string clName,string value) {
DataColumn dc = new DataColumn();
dc.ColumnName = clName;
dc.DefaultValue = value;
return dc;
}
运行的时候,当点击按钮时dataGridView中的列是有显示出来,但是数据却不显示出来,非得用鼠标点击dataGridView区域时才加载数据!这是怎么回事???
从你这里给出的代码看,你只是新建了一个 DataTable,添加了列,并没有填充数据的操作。
有添加数据的
dt.Columns.Add(Getcl("买家名称", response.Trade.BuyerNick));
response.Trade.BuyerNick 就是要填充的数据
完整代码这样的
private void button1_Click(object sender, EventArgs e)
{
string url = "http://gw.api.tbsandbox.com/router/rest";
string appkey = "1021746742";
string appsecret = "sandbox1267a12162b4b790be9e1c1c4";
string sessionkey = "61025211f9aa56fd42a9ad34970a91f4a15ad2ab209c60f3629365654";
ITopClient myclient = new DefaultTopClient(url, appkey, appsecret);
//查询交易信息
TradeFullinfoGetRequest rep = new TradeFullinfoGetRequest();
rep.Fields = "alipay_no,commission_fee,buyer_nick,buyer_alipay_no,price,receiver_address,seller_nick,receiver_city";
rep.Tid = 192353760025456;
TradeFullinfoGetResponse response = myclient.Execute(rep, sessionkey);
//数据绑定加载
DataTable dt = new DataTable();
dt.Columns.Add(Getcl("买家名称", response.Trade.BuyerNick));
dt.Columns.Add(Getcl("交易编号", response.Trade.AlipayNo));
dt.Columns.Add(Getcl("商品价格", response.Trade.Price));
dt.Columns.Add(Getcl("收货地址", response.Trade.ReceiverCity+response.Trade.ReceiverAddress));
dt.Columns.Add(Getcl("卖家名称",response.Trade.SellerNick));
dataGridView1.DataSource = dt;
}
public DataColumn Getcl(string clName,string value) {
DataColumn dc = new DataColumn();
dc.ColumnName = clName;
dc.DefaultValue = value;
return dc;
}
@WP921108: 你这不叫添加数据,dc.DefaultValue = value,这句表示给该列设置默认值,请看 MSDN 解释:
http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn.defaultvalue(v=vs.110).aspx
在创建新行时获取或设置列的默认值。
注意上面这句话,它有个定语——“在创建新行时”,dt.Columns.Add 不叫创建新行,这叫添加新列,注意这里是列,不是行。
创建新行,请使用 dt.Rows.Add 方法。
@Launcher: 好像是的 弄好了 谢谢了 看来以后还是要多看文档啊 呵呵