asp.net 项目心得

来源:互联网 发布:中汇亿达 知乎 编辑:程序博客网 时间:2024/05/16 10:04

项目完毕,对项目中遇到的关键难点,整理一下,希望对以后和其它人有帮助。

1、在有母版的情况下,获取dropdownlist选中值。

<asp:DropDownList ID="designer"runat="server"  Width="150px"Height="20px" AutoPostBack="True"OnTextChanged="designer_TextChanged"></asp:DropDownList> 

   <asp:HyperLinkID="lnkdesigner" ForeColor="#1E71B5"runat="server" NavigateUrl="javascript: var arg=document.getElementById('MainContent_designer').options[document.getElementById('MainContent_designer').selectedIndex].value;window.showModalDialog('designer.aspx?arg1='+arg,null,'dialogHeight =180px;dialogWidth=300px');window.location.reload()"> New/Edit Designer  </asp:HyperLink>

红色部分ID,会在母版转换时,加上母版内容IDMainContent,在调试时,生成的最最终html代码可以看到真实的ID。网上有说可以写成<%=designer..ClientID%>替换。我在单独的<script></script>里面执行<%=designer..ClientID%>没有问题,但是在链接里面这样想却提示错误。所以还是换成了真实的最终ID。dropdownlist在执行时,是需要有值。如果为空,selectedIndex为-1,会提示value属性没有定义或者为null。调试很多次才发现是dropdownlist没有值引起的,引以为戒。

2、window.showModalDialog(’designer.aspx?arg1='+arg,null,dialogHeight=180px;dialogWidth=300px');window.location.reload()            window.showModalDialog('designer.aspx‘,arg1,dialogHeight=180px;dialogWidth=300px');window.location.reload()

showModalDialog各参数,其中最重要的是第一个参数url,和第二个参数argument。上面两个代码看都可以传参数arg1.但是却是有很大差别。第一个在url里面传递。是可以传递到服务器的。将来在服务器端可以用 Request.QueryString["arg1"]接受到。第二行代码,arg1是通过javascript传递,只能在客户端处理,服务器端是接受不到。两个差别,会导致window.showModalDialog网页处理方式上不同。根据不同需要选择不同处理。

3、Page.IsPostBack == false 检测页面第一次加载。如果按钮处理数据更新,这个是必须的。不然一点按钮,先调用Page_Load。按照习惯,很多页面初始化,textbox默认值都在这个时候设置。如果没有检测页面第一次加载,会造成textbox虽然改变了,点击按钮后又回到了原来的值。

0 0