<script type="text/javascript"> function myAddPanel(title,url,desc) { if ((typeof window.sidebar == 'object') && (typeof window.sidebar.addPanel == 'function')) window.sidebar.addPanel(title,url,desc); else window.external.AddFavorite(url,title); } </script> <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script> <script type="text/javascript"> _uacct = "UA-437782-1"; urchinTracker(); </script>
您现在的位置: Linux 宝库 >> .Net >> VC.NET >> 文章正文
批量获取DataGrid控件模板列中的数据 Linuxmine收集整理 作者:linux宝库 (http://www.linuxmine.com) 时间:2006-11-29
收藏本站
来自:linux宝库 (http://www.linuxmine.com) 联系:linuxmine#gmail.com 分类:[VC.NET]
<script type="text/javascript"> var arrBaiduCproConfig=new Array(); arrBaiduCproConfig['uid'] =353007; arrBaiduCproConfig['n'] ='linuxmine_cpr'; arrBaiduCproConfig['tm'] =20; arrBaiduCproConfig['cm'] =76; arrBaiduCproConfig['um'] =26; arrBaiduCproConfig['w'] =559; arrBaiduCproConfig['h'] =120; arrBaiduCproConfig['wn'] =1; arrBaiduCproConfig['hn'] =4; arrBaiduCproConfig['ta'] ='right'; arrBaiduCproConfig['tl'] ='bottom'; arrBaiduCproConfig['bu'] =0; arrBaiduCproConfig['bd'] ='#ffffff'; arrBaiduCproConfig['bg'] ='#ffffff'; arrBaiduCproConfig['tt'] ='#0000cc'; arrBaiduCproConfig['ct'] ='#000000'; arrBaiduCproConfig['url'] ='#0000cc'; arrBaiduCproConfig['bdl'] ='#ffffff'; arrBaiduCproConfig['rad'] =1; </script> <script src="http://cpro.baidu.com/cpro/ui/ui.js" type="text/javascript"> </script> <script type="text/javascript">
</script> marginwidth="0" marginheight="0" src="http://cpro.baidu.com/cpro/ui/uijs.php?&uid=353007&n=linuxmine_cpr&tm=20&cm=76&um=26&rsi0=559&rsi1=120&wn=1&hn=4&rssl0=right&rssl1=bottom&rsi2=0&rss0=%23ffffff&rss1=%23ffffff&rss2=%230000cc&rss3=%23000000&rss4=%230000cc&rss5=%23ffffff&rad=1&word=http%3A%2F%2Fwww.linuxmine.com%2F48458.html " frameborder="0" width="559" scrolling="no" height="120" allowtransparency="allowtransparency">·上一篇: 体验VisualStudio2005中C++语言 ·下一篇: VisualC++2005中混合代码的初始化 不明白?欢迎到 linux论坛 (http://bbs.linuxmine.com) 参加讨论! 尚观Linux研究室推出——Linux/UNIX操作系统一网打尽!
在DataGrid中一般只能单个获取每一行的数据,若要批量获取DataGrid控件中的数据必须对每一个模板列的控件进行扫描,获取其中的数据。 我本想做的程序是根据不同的行数,由用户一次输入若干数据,提交后系统自动获取批量数据的程序。 以下程序简单表达了需要实现的功能 test.aspx .......... <asp:DataGrid id="dgResult" runat="server" BorderColor="#DEBA84" BorderStyle="None" CellSpacing="2" BorderWidth="1px" BackColor="#DEBA84" CellPadding="3" AutoGenerateColumns="False"> <FooterStyle ForeColor="#8C4510" BackColor="#F7DFB5"></FooterStyle> <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#738A9C"></SelectedItemStyle> <ItemStyle ForeColor="#8C4510" BackColor="#FFF7E7"></ItemStyle> <HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#A55129"></HeaderStyle> <Columns> <asp:BoundColumn DataField="id" HeaderText="列号"></asp:BoundColumn> <asp:TemplateColumn HeaderText="列名"> <ItemTemplate> <asp:TextBox Runat="server" Enabled="True" Width="50" ID="col"></asp:TextBox> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="整数精度"> <ItemTemplate> <asp:TextBox Runat="server" Enabled="True" ID="Textbox1" Width="50">20</asp:TextBox> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="小数点精度"> <ItemTemplate> <asp:TextBox Runat="server" Enabled="True" ID="Textbox2" Width="50">10</asp:TextBox> </ItemTemplate> </asp:TemplateColumn> </Columns> <PagerStyle HorizontalAlign="Center" ForeColor="#8C4510" Mode="NumericPages"></PagerStyle> </asp:DataGrid> <asp:Button id="btnOK" runat="server" Text="提交"></asp:Button> ...... test.aspx.cs private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if(!IsPostBack) mfbind(DataSource()); } private IList DataSource() { DataTable dt=new DataTable(); DataColumn dc=new DataColumn(); dc.ColumnName="id"; dc.DataType=System.Type.GetType("System.Int32"); dc.ReadOnly=true; dc.Unique=true; dc.AutoIncrement=true; dc.AutoIncrementSeed=0; dc.AutoIncrementStep=1; dt.Columns.Add(dc); dc=new DataColumn(); dc.ColumnName="列名称"; dc.DataType=System.Type.GetType("System.String"); dt.Columns.Add(dc); for(int i=0;i<10;i++) { DataRow dr=dt.NewRow(); dr[1]=i; dt.Rows.Add(dr); } Session["Source"] = dt; return dt.DefaultView; } private void mfbind(IList dv) { this.dgResult.DataSource=(DataView)dv; this.dgResult.DataBind(); } private void btnOK_Click(object sender, System.EventArgs e) { //string tmpa=dgResult__ctl2_col1.Text; TextBox txt; ArrayList mArr=new ArrayList(); for(int i=0;i<10;i++) { txt=new TextBox(); txt=(TextBox)dgResult.Items[i].FindControl("col"); mArr.Add(txt.Text); } for(int i=0;i<mArr.Count;i++) this.lblProblem.Text+=mArr[i].ToString()+" ; "; } 其实这样的程序有共通性,通过DataGrid控件可以对数据进行批量处理,特别是对删除数据等操作的过程中使用起来及其方便快捷,只要将程序的模板列中的TextBox控件改为CheckBox控件或者DropDownList控件,扫描所有的子控件就可以实现对数据的批量快速删除、修改等操作。
不明白?欢迎到 linux论坛 (http://bbs.linuxmine.com) 参加讨论! 尚观Linux研究室推出——Linux/UNIX操作系统一网打尽!
·上一篇: 体验VisualStudio2005中C++语言 ·下一篇: VisualC++2005中混合代码的初始化
<script type="text/javascript">
</script> <script language="javascript" type="text/javascript"> var xsImgs = new Array("/images/boke.gif","/images/luntan.gif"); var xsImgLinks = new Array("http://blog.linuxmine.com","http://bbs.linuxmine.com"); var xsImgTexts = new Array("http://blog.linuxmine.com","http://bbs.linuxmine.com"); var xsImgSize = new Array(focus_width, focus_height); </script>
<script language="javascript" src="./slide.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript"> self.onError=null; currentX = currentY = 0; whichIt = null; lastScrollX = 0; lastScrollY = 0; NS = (document.layers) ? 1 : 0; IE = (document.all) ? 1: 0;
function heartBeat() { if(IE) { diffY = document.body.scrollTop+450; diffX = window.screen.availWidth / 2 + 300; } if(NS) { diffY = self.pageYOffset; diffX = self.pageXOffset; } if(!IE && !NS) { diffY = document.body.scrollTop + 450; diffX = ((window.screen.availWidth / 2) + 250); } if(diffY != lastScrollY) { percent = .1 * (diffY - lastScrollY); if(percent > 0) percent = Math.ceil(percent); else percent = Math.floor(percent); if(IE) document.all.floater.style.pixelTop += percent; if(NS) document.floater.top += percent; if(!IE && !NS) { document.getElementById("floater").style.top = diffY; } lastScrollY = lastScrollY + percent; } if(diffX != lastScrollX) { percent = .1 * (diffX - lastScrollX); if(percent > 0) percent = Math.ceil(percent); else percent = Math.floor(percent); if(IE) document.all.floater.style.pixelLeft += percent; if(NS) document.floater.left += percent; if(!IE && !NS) { document.getElementById("floater").style.left = diffX; } lastScrollX = lastScrollX + percent; } }
function checkFocus(x,y) { stalkerx = document.floater.pageX; stalkery = document.floater.pageY; stalkerwidth = document.floater.clip.width; stalkerheight = document.floater.clip.height; if( (x > stalkerx && x < (stalkerx+stalkerwidth)) && (y > stalkery && y < (stalkery+stalkerheight))) return true; else return false; } function grabIt(e) { if(IE) { whichIt = event.srcElement; while (whichIt.id.indexOf("floater") == -1) { whichIt = whichIt.parentElement; if (whichIt == null) { return true; } } whichIt.style.pixelLeft = whichIt.offsetLeft; whichIt.style.pixelTop = whichIt.offsetTop; currentX = (event.clientX + document.body.scrollLeft); currentY = (event.clientY + document.body.scrollTop); } else { window.captureEvents(Event.MOUSEMOVE); if(checkFocus (e.pageX,e.pageY)) { whichIt = document.floater; stalkerTouchedX = e.pageX-document.floater.pageX; StalkerTouchedY = e.pageY-document.floater.pageY; } } return true; } function moveIt(e) { if (whichIt == null) { return false; } if(IE) { newX = (event.clientX + document.body.scrollLeft); newY = (event.clientY + document.body.scrollTop); distanceX = (newX - currentX); distanceY = (newY - currentY); currentX = newX; currentY = newY; whichIt.style.pixelLeft += distanceX; whichIt.style.pixelTop += distanceY; if(whichIt.style.pixelTop < document.body.scrollTop) whichIt.style.pixelTop = document.body.scrollTop; if(whichIt.style.pixelLeft < document.body.scrollLeft) whichIt.style.pixelLeft = document.body.scrollLeft; if(whichIt.style.pixelLeft > document.body.offsetWidth - document.body.scrollLeft - whichIt.style.pixelWidth - 20) whichIt.style.pixelLeft = document.body.offsetWidth - whichIt.style.pixelWidth - 20; if(whichIt.style.pixelTop > document.body.offsetHeight + document.body.scrollTop - whichIt.style.pixelHeight - 5) whichIt.style.pixelTop = document.body.offsetHeight + document.body.scrollTop - whichIt.style.pixelHeight - 5; event.returnValue = false; } else { whichIt.moveTo(e.pageX-StalkerTouchedX,e.pageY-StalkerTouchedY); if(whichIt.left < 0+self.pageXOffset) whichIt.left = 0+self.pageXOffset; if(whichIt.top < 0+self.pageYOffset) whichIt.top = 0+self.pageYOffset; if( (whichIt.left + whichIt.clip.width) >= (window.innerWidth+self.pageXOffset-17)) whichIt.left = ((window.innerWidth+self.pageXOffset)-whichIt.clip.width)-17; if( (whichIt.top + whichIt.clip.height) >= (window.innerHeight+self.pageYOffset-17)) whichIt.top = ((window.innerHeight+self.pageYOffset)-whichIt.clip.height)-17; return false;} return false; } action = window.setInterval("heartBeat()",1); </script>