sciter table控件交互

需要特别注意语法的问题。

HTML源码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<link rel="stylesheet" href="css/index.css" />
		<script type="text/tiscript">
		$(#tableID).onClick = function()
		{
			stdout.println("in ItemHtml start!"); 
			view.tableID();  //必须有这句才能与后端交互
		};        
function sayHello(param)
        {
			stdout.println("in sayHello start!");
        	var jsonData = JSON.parse(param);
        	var tableRowNo;     
			var tableID_show = $(table#tableID);     
			stdout.println(jsonData.length);
        	for(tableRowNo=0; tableRowNo<jsonData.length; tableRowNo++)
        	{
				var trTmp = new Element("tr");  //挖出一个tr标签
				var tdTmp1 = new Element("td"); //挖一个td标签
				tdTmp1.text = jsonData[tableRowNo]['index']; //拿出对象插入到td标签里面
				trTmp.append(tdTmp1);    //再把td标签加入到tr标签里面都会自带结尾
				//stdout.println(trTmp.outerHtml());
				stdout.println("in td 111!");
				
        		var tdTmp2 = new Element("td");  //生成一个td标签
			tdTmp2.text = jsonData[tableRowNo]['volumePathName'];//拿取js数组的值插入到td
				trTmp.append(tdTmp2); //再把td标签插入到tr标签里面;
				tableID_show.append(trTmp);
				stdout.println("in tr 222!");
        	}
			stdout.println("in tr 33333!");  
			stdout.println(tableID_show.outerHtml());//打印错误信息;
        }
    </script>
 </head>

 


	<body>
		<div style="width: 570px;height: 450px;background-color: #F0F0F0;padding: 20px;">
			<table #tableID style="background-color: #fff;width: 100%;">
				<tr>
					<th style="width: 40%;text-align: left;">Item Name</th>
					<th style="width: 60%;text-align: left;">Description</th>
				</tr>
			</table>
			<button.fr>OK</button>
		</div>
	</body>
</html>

 

C++中源码

//tableID 表控件ID
sciter::value CMakePeFrame::ItemTest()
{
	int i;

	char* sJson;
	cJSON* pRoot, *pSub;
	CStringA strA;
	pRoot = cJSON_CreateArray();
	for (i = 0; i < 3; i++)  //每次所有数据插入一个数组里面
	{
		cJSON_AddItemToArray(pRoot, pSub = cJSON_CreateObject());//数据插入数组中传给html
		cJSON_AddNumberToObject(pSub, "index", i);//第一列的数据
		strA = "aaaa";
		strA.Replace('\\', ' ');
		cJSON_AddStringToObject(pSub, "volumePathName", strA);//第二列的数据
		cJSON_AddNumberToObject(pSub, "totalNumberOfFreeBytes", i*10+i);//第三列的数据
	}

	sJson = cJSON_PrintUnformatted(pRoot);
	strA = sJson;
	CStringW strW;
	strW = strA;


	sciter::value svPartition = "aa3525aa";
	sciter::value svRet = call_function("sayHello", strW.GetBuffer()); //这里调用html里面的函数 这段重点
	sciter::string strtmp = svRet.to_string();
	cJSON_Delete(pRoot);
	if (sJson) free(sJson);

	return svPartition;

}

.h中的声明

	
BEGIN_FUNCTION_MAP
		FUNCTION_0("tableID", ItemTest); //表控件的发送消息
	END_FUNCTION_MAP	


//下面的函数声明
sciter::value  ItemTest(); //table 控件第一列

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值