ViewState有关问题 高手指教
ViewState问题 高手指教
每次我的打他table都被清空了 扫描原因啊
------解决方案--------------------
楼主,是这样的,当asp.net在编译的时候,会把你的小脚本代码段,<%bandRpt_ISDetail();%>编译成私有字段,然后呢,在页面Render的时候呢,会去Render这些字段,这些字段包括服务器控件,页面的表达式和小脚本代码段,意思是你页面加载的时候,已经执行了你的bandRpt_ISDetail方法,所以,当你在页面上进行if(event.keyCode == 13) {<%bandRpt_ISDetail();%>}毫无意义,最后还是楼主你对asp.net的概念理解可能不对,多多学习
- JScript code
<script type="text/javascript" language="javascript"> function txt_onkeydown() { if (event.keyCode == 13) { <%bandRpt_ISDetail();%> } } </script>
- C# code
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataTable dtInS = new DataTable(); dtInS.Columns.Add(new DataColumn("stockName")); dtInS.Columns.Add(new DataColumn("scanNo")); dtInS.Columns.Add(new DataColumn("Num")); dtInS.Columns.Add(new DataColumn("Uint")); } } } public void bandRpt_ISDetail() { DataTable dt = (DataTable)ViewState["dtInS"]; string scanNo = txt_scan_No.Text; if (!string.IsNullOrEmpty(scanNo)) { DataRow dr = dt.NewRow(); dr["stockName"] = hf_stockName.Value; dr["Uint"] = "台"; dr["Num"] = "1"; dr["scanNo"] = scanNo; dt.Rows.Add(dr); ViewState["dtInS"] = dt; rpt_ISDetail.DataSource = dt; rpt_ISDetail.DataBind(); } }
每次我的打他table都被清空了 扫描原因啊
------解决方案--------------------
楼主,是这样的,当asp.net在编译的时候,会把你的小脚本代码段,<%bandRpt_ISDetail();%>编译成私有字段,然后呢,在页面Render的时候呢,会去Render这些字段,这些字段包括服务器控件,页面的表达式和小脚本代码段,意思是你页面加载的时候,已经执行了你的bandRpt_ISDetail方法,所以,当你在页面上进行if(event.keyCode == 13) {<%bandRpt_ISDetail();%>}毫无意义,最后还是楼主你对asp.net的概念理解可能不对,多多学习