问题描述
功能:点击一级分类,运用局部刷新,根据一级分类传的id来显示二级分类SQL字段createtableYinPian--饮片表(ypidintprimarykeyidentity(1,1),--饮片Idypnamevarchar(50),--饮片名称ypsjidint,--上级id,0为一级id,二级的id为一级id)insertintoYinPian(ypname,ypsjid)values('解表药',0)insertintoYinPian(ypname,ypsjid)values('发散风寒药',1)insertintoYinPian(ypname,ypsjid)values('发散风热药',1)insertintoYinPian(ypname,ypsjid)values('桂枝',2)insertintoYinPian(ypname,ypsjid)values('荆齐',2)insertintoYinPian(ypname,ypsjid)values('薄荷',3)insertintoYinPian(ypname,ypsjid)values('菊花',3)
在页面我利用LinkButton传一级分类的id,在方法中接收一级ID来判断显示二级分类名称,但是这样有个弊端,每次点击按钮都要重新刷新页面,请教各位高手帮我写一下这个方法,或者有更简单和方便的写法也请指教指教。<asp:LinkButtonID="LinkButton1"runat="server"Text='<%#Eval("ypname")%>'ToolTip='<%#Eval("ypsjid")%>'onclick="LinkButton1_Click"class="label"></asp:LinkButton>
我知道还有用aherf来传ID,这种方法怎么写?
解决方案
解决方案二:
你用了服务器控件和事件,每次执行都是PostBack的,也就是会刷新页面(百度一下asp.net回发机制)。你想要局部刷新,就换成普通的html标签,不要用asp.net控件,然后用ajax处理。
解决方案三:
UpdatePanl控件
解决方案四:
或者html+jqueryajax
解决方案五:
实际上如果你想考虑所谓的基于javascript框架的前端开发技术,在javascript论坛(或者typescript论坛)才适合讨论这种程序的设计思路。asp.net只是设计用来以一个页面要访问的业务逻辑服务层而已,并不直接实现UI。如果你使用asp.net,那么你就应该学好UpdatePanel。并且要忍受一遍遍刷新html带来的比较低效的用户操作。以前我贴过一个类似demo程序,可以参考:UpdatePanel是10年前发布的了,之后asp.net实际上就放弃了ajax潮流,扔一个jQuery在asp.net里边而已。直到最近两年才想起来搞个typescript,而且这还只是最基本的底层开发工具,还没有标准的UI库,估计以后也很难有了。
解决方案六:
如果你运行上面的UpdatePanel的例子,在自己的单机上,或者在小办公室的局域网,可能你觉得它的操作性还过得去。所以你如果只是会一点asp.net,且没有更好的、更深入学习的框架,那么学好UpdatePanel也可以。但是我们都玩儿它剩下了,早在7、8年前就知道web企业应用软件的潮流往哪里走,那时候就知道它必须淘汰了。
解决方案七:
关于asp.net在适应ajax潮流上的两种东西给程序员设计下的“坑”如何区分,我前几年的一个帖子有所涉及。只不过我在以前一直是从asp.net程序员的习惯的知识出发来讨论的,对asp.net的编程机制尽量“维护”、尽量说明。实际上,我们自己是很早就不用asp.net了,只是用它维护个别老系统。维护老系统的时候,那么你用UpdatePanel就可以了,只能尽力做到这个程度。而真正要改为ajax的程序,你就的重新设计整个前端程序了——使用javascript程序员、而不是asp.net程序员。