其实这个很简单,但是有时候简单的东西会让你犯一些低级错误。

今天写了个spring mvc 的服务器端接口,主要是用来共享一些数据库数据。

请求字段:http://localhost:8080/XXXXX/data/listrealdata?m_pname=%25%25&m_pp=%25%25&m_ggxh=%25%25&m_xsht=%25%25&m_pid=%25%25

返回数据:

his XML file does not appear to have any style information associated with it. The document tree is shown below.
<kFdatalist>
<catalog>1</catalog>
<kfdatas>
<kfdata>
<id>1397</id>
<kf_rkry>admin</kf_rkry>
<kf_rkdate>2016-12-27T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-14</kf_pid>
<kf_pname>触摸屏</kf_pname>
<kf_ggxh>6AV2124-0GC01-0AX0</kf_ggxh>
<kf_pp>西门子</kf_pp>
<kf_dw>个</kf_dw>
<kf_num>4</kf_num>
<kf_pricetax>3376.0700</kf_pricetax>
<kf_cght>TEST-001</kf_cght>
<kf_cglx/>
<kf_xsht>GFS-1207020</kf_xsht>
<kf_xsname>管坯排锯</kf_xsname>
<kf_adress1/>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>4</kf_num_invalid>
<kf_rkdh>GFS-RK-52</kf_rkdh>
</kfdata>
<kfdata>
<id>1398</id>
<kf_rkry>admin</kf_rkry>
<kf_rkdate>2016-12-27T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-15</kf_pid>
<kf_pname>模块</kf_pname>
<kf_ggxh>6ES7223-1PH22-OXA8</kf_ggxh>
<kf_pp>西门子</kf_pp>
<kf_dw>个</kf_dw>
<kf_num>40</kf_num>
<kf_pricetax>423.9300</kf_pricetax>
<kf_cght>TEST-001</kf_cght>
<kf_cglx/>
<kf_xsht>GFS-1207020</kf_xsht>
<kf_xsname>管坯排锯</kf_xsname>
<kf_adress1/>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>40</kf_num_invalid>
<kf_rkdh>GFS-RK-52</kf_rkdh>
</kfdata>
<kfdata>
<id>1399</id>
<kf_rkry/>
<kf_rkdate>1900-01-01T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-16</kf_pid>
<kf_pname>线鼻子(红绿蓝)</kf_pname>
<kf_ggxh>BBC</kf_ggxh>
<kf_pp>B</kf_pp>
<kf_dw>B</kf_dw>
<kf_num>10</kf_num>
<kf_pricetax>0.0000</kf_pricetax>
<kf_cght>TEST-006</kf_cght>
<kf_cglx>补充库存</kf_cglx>
<kf_xsht>补充库存</kf_xsht>
<kf_xsname>补充库存</kf_xsname>
<kf_adress1/>
<kf_adress2/>
<kf_num_valid>10</kf_num_valid>
<kf_num_invalid>0</kf_num_invalid>
<kf_rkdh>GFS-RK-41</kf_rkdh>
</kfdata>
<kfdata>
<id>1400</id>
<kf_rkry>admin</kf_rkry>
<kf_rkdate>2016-12-27T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-17</kf_pid>
<kf_pname>防爆箱</kf_pname>
<kf_ggxh>560*430*197</kf_ggxh>
<kf_pp>合隆</kf_pp>
<kf_dw>个</kf_dw>
<kf_num>0</kf_num>
<kf_pricetax>3589.7400</kf_pricetax>
<kf_cght>TEST-001</kf_cght>
<kf_cglx/>
<kf_xsht>GFS-1207020</kf_xsht>
<kf_xsname>管坯排锯</kf_xsname>
<kf_adress1/>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>0</kf_num_invalid>
<kf_rkdh>GFS-RK-52</kf_rkdh>
</kfdata>
<kfdata>
<id>1401</id>
<kf_rkry>admin</kf_rkry>
<kf_rkdate>2016-12-27T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-18</kf_pid>
<kf_pname>模块</kf_pname>
<kf_ggxh>6ES7223-1BH22-OXA8</kf_ggxh>
<kf_pp>西门子</kf_pp>
<kf_dw>个</kf_dw>
<kf_num>0</kf_num>
<kf_pricetax>408.5500</kf_pricetax>
<kf_cght>TEST-001</kf_cght>
<kf_cglx/>
<kf_xsht>GFS-1207020</kf_xsht>
<kf_xsname>管坯排锯</kf_xsname>
<kf_adress1/>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>0</kf_num_invalid>
<kf_rkdh>GFS-RK-52</kf_rkdh>
</kfdata>
<kfdata>
<id>1402</id>
<kf_rkry>admin</kf_rkry>
<kf_rkdate>2016-12-27T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-26</kf_pid>
<kf_pname>模块</kf_pname>
<kf_ggxh>6ES7235-0KD22-OXA8</kf_ggxh>
<kf_pp>西门子</kf_pp>
<kf_dw>个</kf_dw>
<kf_num>0</kf_num>
<kf_pricetax>704.2700</kf_pricetax>
<kf_cght>TEST-001</kf_cght>
<kf_cglx/>
<kf_xsht>GFS-1207020</kf_xsht>
<kf_xsname>管坯排锯</kf_xsname>
<kf_adress1/>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>0</kf_num_invalid>
<kf_rkdh>GFS-RK-52</kf_rkdh>
</kfdata>
<kfdata>
<id>1403</id>
<kf_rkry>admin</kf_rkry>
<kf_rkdate>2016-12-27T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-27</kf_pid>
<kf_pname>温度变送器</kf_pname>
<kf_ggxh>QAH11.1</kf_ggxh>
<kf_pp>西门子</kf_pp>
<kf_dw>个</kf_dw>
<kf_num>1</kf_num>
<kf_pricetax>85.4700</kf_pricetax>
<kf_cght>TEST-001</kf_cght>
<kf_cglx/>
<kf_xsht>GFS-1207020</kf_xsht>
<kf_xsname>管坯排锯</kf_xsname>
<kf_adress1/>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>1</kf_num_invalid>
<kf_rkdh>GFS-RK-52</kf_rkdh>
</kfdata>
<kfdata>
<id>1404</id>
<kf_rkry>admin</kf_rkry>
<kf_rkdate>2016-12-27T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-28</kf_pid>
<kf_pname>模块</kf_pname>
<kf_ggxh>MO</kf_ggxh>
<kf_pp>斯菲尔</kf_pp>
<kf_dw>只</kf_dw>
<kf_num>1</kf_num>
<kf_pricetax>299.1500</kf_pricetax>
<kf_cght>TEST-001</kf_cght>
<kf_cglx/>
<kf_xsht>GFS-1207020</kf_xsht>
<kf_xsname>管坯排锯</kf_xsname>
<kf_adress1/>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>1</kf_num_invalid>
<kf_rkdh>GFS-RK-52</kf_rkdh>
</kfdata>
<kfdata>
<id>1405</id>
<kf_rkry/>
<kf_rkdate>2017-01-04T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-34</kf_pid>
<kf_pname>电缆</kf_pname>
<kf_ggxh>BVR 0.5黑</kf_ggxh>
<kf_pp>国产</kf_pp>
<kf_dw>米</kf_dw>
<kf_num>0</kf_num>
<kf_pricetax>0.0000</kf_pricetax>
<kf_cght/>
<kf_cglx/>
<kf_xsht/>
<kf_xsname/>
<kf_adress1>A-1</kf_adress1>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>0</kf_num_invalid>
<kf_rkdh>123</kf_rkdh>
</kfdata>
<kfdata>
<id>1406</id>
<kf_rkry/>
<kf_rkdate>2017-01-04T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-35</kf_pid>
<kf_pname>电缆</kf_pname>
<kf_ggxh>BVR 1.0黑</kf_ggxh>
<kf_pp>国产</kf_pp>
<kf_dw>米</kf_dw>
<kf_num>0</kf_num>
<kf_pricetax>0.0000</kf_pricetax>
<kf_cght/>
<kf_cglx/>
<kf_xsht/>
<kf_xsname/>
<kf_adress1>A-1</kf_adress1>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>0</kf_num_invalid>
<kf_rkdh>1234</kf_rkdh>
</kfdata>
<kfdata>
<id>1407</id>
<kf_rkry/>
<kf_rkdate>2017-01-04T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-36</kf_pid>
<kf_pname>电缆</kf_pname>
<kf_ggxh>BVR 1.5黑</kf_ggxh>
<kf_pp>国产</kf_pp>
<kf_dw>米</kf_dw>
<kf_num>0</kf_num>
<kf_pricetax>0.0000</kf_pricetax>
<kf_cght/>
<kf_cglx/>
<kf_xsht/>
<kf_xsname/>
<kf_adress1>A-1</kf_adress1>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>0</kf_num_invalid>
<kf_rkdh>15</kf_rkdh>
</kfdata>
<kfdata>
<id>1408</id>
<kf_rkry/>
<kf_rkdate>2017-01-04T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-37</kf_pid>
<kf_pname>电缆</kf_pname>
<kf_ggxh>BVR 10黑</kf_ggxh>
<kf_pp>国产</kf_pp>
<kf_dw>米</kf_dw>
<kf_num>0</kf_num>
<kf_pricetax>0.0000</kf_pricetax>
<kf_cght/>
<kf_cglx/>
<kf_xsht/>
<kf_xsname/>
<kf_adress1>A-1</kf_adress1>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>0</kf_num_invalid>
<kf_rkdh/>
</kfdata>
<kfdata>
<id>1409</id>
<kf_rkry/>
<kf_rkdate>2017-01-04T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-38</kf_pid>
<kf_pname>电缆</kf_pname>
<kf_ggxh>BVR 16黑</kf_ggxh>
<kf_pp>国产</kf_pp>
<kf_dw>米</kf_dw>
<kf_num>0</kf_num>
<kf_pricetax>0.0000</kf_pricetax>
<kf_cght/>
<kf_cglx/>
<kf_xsht/>
<kf_xsname/>
<kf_adress1>A-1</kf_adress1>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>0</kf_num_invalid>
<kf_rkdh/>
</kfdata>
<kfdata>
<id>1410</id>
<kf_rkry/>
<kf_rkdate>2017-01-04T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-39</kf_pid>
<kf_pname>电缆</kf_pname>
<kf_ggxh>BVR 25黑</kf_ggxh>
<kf_pp>国产</kf_pp>
<kf_dw>米</kf_dw>
<kf_num>0</kf_num>
<kf_pricetax>0.0000</kf_pricetax>
<kf_cght/>
<kf_cglx/>
<kf_xsht/>
<kf_xsname/>
<kf_adress1>A-1</kf_adress1>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>0</kf_num_invalid>
<kf_rkdh/>
</kfdata>
<kfdata>
<id>1411</id>
<kf_rkry/>
<kf_rkdate>2017-01-04T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-40</kf_pid>
<kf_pname>电缆</kf_pname>
<kf_ggxh>E304362</kf_ggxh>
<kf_pp>进口</kf_pp>
<kf_dw>米</kf_dw>
<kf_num>2000</kf_num>
<kf_pricetax>0.0000</kf_pricetax>
<kf_cght/>
<kf_cglx/>
<kf_xsht/>
<kf_xsname/>
<kf_adress1>A-1</kf_adress1>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>0</kf_num_invalid>
<kf_rkdh/>
</kfdata>
<kfdata>
<id>1412</id>
<kf_rkry/>
<kf_rkdate>2017-01-04T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-41</kf_pid>
<kf_pname>电缆</kf_pname>
<kf_ggxh>2芯视频线</kf_ggxh>
<kf_pp>国产</kf_pp>
<kf_dw>米</kf_dw>
<kf_num>0</kf_num>
<kf_pricetax>0.0000</kf_pricetax>
<kf_cght/>
<kf_cglx/>
<kf_xsht/>
<kf_xsname/>
<kf_adress1>A-1</kf_adress1>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>0</kf_num_invalid>
<kf_rkdh/>
</kfdata>
<kfdata>
<id>1413</id>
<kf_rkry/>
<kf_rkdate>2017-01-04T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-42</kf_pid>
<kf_pname>电缆</kf_pname>
<kf_ggxh>12*1 蓝</kf_ggxh>
<kf_pp>国产</kf_pp>
<kf_dw>米</kf_dw>
<kf_num>0</kf_num>
<kf_pricetax>0.0000</kf_pricetax>
<kf_cght/>
<kf_cglx/>
<kf_xsht/>
<kf_xsname/>
<kf_adress1>A-1</kf_adress1>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>0</kf_num_invalid>
<kf_rkdh/>
</kfdata>
<kfdata>
<id>1414</id>
<kf_rkry/>
<kf_rkdate>2017-01-04T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-43</kf_pid>
<kf_pname>电缆</kf_pname>
<kf_ggxh>YZ 6*1.0</kf_ggxh>
<kf_pp>国产</kf_pp>
<kf_dw>米</kf_dw>
<kf_num>0</kf_num>
<kf_pricetax>0.0000</kf_pricetax>
<kf_cght/>
<kf_cglx/>
<kf_xsht/>
<kf_xsname/>
<kf_adress1>A-1</kf_adress1>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>0</kf_num_invalid>
<kf_rkdh/>
</kfdata>
<kfdata>
<id>1415</id>
<kf_rkry/>
<kf_rkdate>2017-01-04T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-44</kf_pid>
<kf_pname>电缆</kf_pname>
<kf_ggxh>RVV 10*1</kf_ggxh>
<kf_pp>国产</kf_pp>
<kf_dw>米</kf_dw>
<kf_num>0</kf_num>
<kf_pricetax>0.0000</kf_pricetax>
<kf_cght/>
<kf_cglx/>
<kf_xsht/>
<kf_xsname/>
<kf_adress1>A-1</kf_adress1>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>0</kf_num_invalid>
<kf_rkdh/>
</kfdata>
<kfdata>
<id>1416</id>
<kf_rkry/>
<kf_rkdate>2017-01-04T00:00:00+08:00</kf_rkdate>
<kf_pid>GFS-KF-45</kf_pid>
<kf_pname>电缆</kf_pname>
<kf_ggxh>BVR 4.0黑</kf_ggxh>
<kf_pp>国产</kf_pp>
<kf_dw>米</kf_dw>
<kf_num>0</kf_num>
<kf_pricetax>0.0000</kf_pricetax>
<kf_cght/>
<kf_cglx/>
<kf_xsht/>
<kf_xsname/>
<kf_adress1>A-1</kf_adress1>
<kf_adress2/>
<kf_num_valid>0</kf_num_valid>
<kf_num_invalid>0</kf_num_invalid>
<kf_rkdh/>
</kfdata>
<offset>1</offset>
<size>20</size>
<total>20</total>
</kfdatas>
<newsCount>20</newsCount>
<pageSize>0</pageSize>
</kFdatalist>

数据有点长,仅供参考了。

一切很顺利,用Fiddler测试一切顺利,准备做个html页做个简单的测试页。

但是遇到了点问题,

HTML源码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>加载XML</title> <script type="text/javascript" src="jquery-1.10.1.min.js"></script>
<script type="text/javascript">
$(function(){
$("#send").click(function(){
$.ajax({
type : 'GET',
dataType : 'xml',
async: false,
data: {
m_pname : $("#m_pname").val() ,
m_pp : $("#m_pp").val() ,
m_ggxh : $("#m_ggxh").val() ,
m_xsht : $("#m_xsht").val() ,
m_pid : $("#m_pid").val()
},
url: "http://localhost:8080/spring_ht/data/listrealdata",
timeout: 2000,
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
},
success: function(xml)
{
$(xml).find("kfdata").each(function(i)
{
var kf_pname = $(this).children("kf_pname").text();
var kf_ggxh = $(this).children("kf_ggxh").text();
var kf_pp = $(this).children("kf_pp").text();
var kf_num = $(this).children("kf_num").text();
var kf_rkdh = $(this).children("kf_rkdh").text(); var html = '';
html += '<div class="kf_pname"><h6>'+kf_pname+
'<div class="kf_ggxh"><h6>'+kf_ggxh+
'<div class="kf_pp"><h6>'+kf_pp+
'<div class="kf_num"><h6>'+kf_num+
'<div class="kf_rkdh"><h6>'+kf_rkdh
$('#resText').html(html);
});
}
});
})
})
</script>
</head>
<body>
<form id="form1" action="#">
<p>分页测试:</p>
m_pname:<input id="m_pname" name="m_pname" type="text" value="%%"/>
m_pp:<input id="m_pp" name="m_pp" type="text" value="%%"/>
m_ggxh:<input id="m_ggxh" name="m_ggxh" type="text" value="%%"/>
m_xsht:<input id="m_xsht" name="m_xsht" type="text" value="%%"/>
m_pid:<input id="m_pid" name="m_pid" type="text" value="%%"/><br/>
<p><input type="Button" id="send" value="提交"/></p>
</form>
<div class='comment'>返回数据:</div>
<div id="resText" ></div> </body>
</html>

一个很简单的东西,以上的代码是解决了问题的:

问题现象是,我提交后,网页提示error。

解决办法是:

<p><input type="button" id="send" value="提交"/></p>
改成
<p><input type="Button" id="send" value="提交"/></p>

希望;雷同问题的小朋友少走弯路...

关于jquery获取服务器端xml数据的更多相关文章

  1. jQuery获取JSON格式数据方法

    getJSON方法: jQuery.getJSON(url,data,success(data,status,xhr)) $("button").click(function(){ ...

  2. KindEditor提交用jquery获取不到数据的解决方法

    http://www.douban.com/note/257795704/ 如果说用php接收的话,在HTML中这样写就可以了var editor;KindEditor.ready(function( ...

  3. Asp.Net 之 js/jquery获取服务器端控件

    由于ASP.NET网页运行后,服务器控件会随机生成客户端id,jquery获取时候不太好操作,总结有以下3种方法:服务器控件代码:<asp:TextBox ID="txtUserID& ...

  4. Jquery获取服务器端控件的三种方式

    一 Jquery获得服务器控件值的方法由于ASP.NET网页运行后,服务器控件会随机生成客户端id,jquery获取时候不太好操作,google了下,总结有以下3种方法: 服务器控件代码:<as ...

  5. jquery 获取json文件数据,显示到jsp页面上, 或者html页面上

    [{"name":"中国工商银行","code":102},{"name":"中国农业银行",&qu ...

  6. jquery 获取后台实时数据

    第一步.提醒后台处理数据1.$.ajax({}) 提交数据,2.后台返回状态3.后台开始处理数据,并每秒记录状态到 data.json 文件4.前台每秒请求 data.json 文件,直到处理完成 第 ...

  7. 使用jQuery获取GridView的数据行的数量

    一个同事在群里抛出了上述的问题,另一个同事给出了答案,试了一下,还不错.贴出代码和效果图: <html xmlns="http://www.w3.org/1999/xhtml" ...

  8. Jquery重新学习之六[操作XML数据]

    上一章整理有关Jquery操作JSON格式数据,本章则是整理Jquery与XML的交互,因为XML简单易用及运用在很跨平台上的优点,所以项目运用Jquery操作XML还是比较常见:下面的代码来自Jqu ...

  9. 关于 C# DataSet.ReadXml 无法获取Xml数据的问题解析

    首先这次遇到问题的是,C# Winform 项目中新建的数据集 IDE 是 VS2013 调用如下: private void Form1_Load(object sender, EventArgs ...

随机推荐

  1. AFN演示

  2. Android 性能优化 四 布局优化merge标签的使用

    小白:之前分享了ViewStub标签的使用,Android还有其他优化布局的方式吗? 小黑:<merge />标签用于减少View树的层次来优化Android的布局.先来用个例子演示一下: ...

  3. bzoj1034

    贪心 尽可能让最强的赢,最弱的赢,都不行则最弱打最强 感性的想,我肯定要尽可能的赢,而且赢的要对等 实在不能赢就拿最小的拼,所谓的田忌赛马策略 由于总分一定,己方最差即己方最好时对方的分数 ..] o ...

  4. BZOJ_1208_&_Codevs_1258_[HNOI2004]_宠物收养所_(平衡树/set)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1208 (据说codevs要更新?就不放codevs的地址了吧...) 有宠物和人,每个单位都有 ...

  5. BZOJ3132: 上帝造题的七分钟

    3132: 上帝造题的七分钟 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 483  Solved: 222[Submit][Status] Desc ...

  6. clang failed with exit code 1 的常见情况

    1:文件重复,如生成了一份  xxx副本.m 2:reachablity.h 这个文件经常重复. 以上优先检查 .

  7. 【转】重载(overload),覆盖(override),隐藏(hide)的区别

    原文网址:http://www.cppblog.com/zgysx/archive/2007/03/12/19662.html 写正题之前,先给出几个关键字的中英文对照,重载(overload),覆盖 ...

  8. Web三维技术:Flash Builder+away3d平台搭建(含演示视频)

    转自:http://www.cnblogs.com/beer/archive/2011/07/08/2101492.html 前言:作为页面中实验设备的显示层,需要一个swf作为显示的UI.虽然可以用 ...

  9. JavaScript向表格中添加按钮和文本输入框

    例子: <?php ?> <html> <head> <meta http-equiv="Content-Type" content=&q ...

  10. DevExpress控件学习总结 z

    1.Navigation & Layout 1.1 Bar Manager 如果想在窗体或用户控件(user control)上添加工具条(bars)或弹出菜单(popup menus),我们 ...