Monthly Archives: November 2006

ASP.Net按钮提交前执行javascript

here is the code… 在提交前执行一段js <script language=“javascript“> function doSomething() { // 执行自己的javascript // 继续提交 this.click();} </script> <asp:button onmousedown=“doSomething()“ id=“someButton” Text=”提交” runat=”server”> </asp:button>

用JavaScript执行PostBack

早上实现了在子页面更新数据以后,父页面刷新树的功能 思路: 父页面有个隐藏的html button作为proxy,子页面保存完数据以后,用js调用父页面的html button的触发函数click(); 父页面有个asp.net的link button控件,text="",等于也是隐藏的,它负责调用后台cs代码里的负责刷新树的方法; 父页面的html button onclick的时候,__doPostBack(‘DoRefresh’,”); 代码: 父页面apsx: <input type=”button” id=”DoRefreshProxy” value=”DO” onclick=”__doPostBack(‘DoRefresh’,”);” style=”display:none;” /> <asp:linkbutton id=”DoRefresh” runat=”server” onclick=”DoRefresh_Click” CausesValidation=False/> 父页面cs: protected void DoRefresh_Click(object sender, EventArgs e) { this.BindTree(this.tvBuilding.SelectedNodeIndex,1); } 子页面cs: Page.RegisterStartupScript(“pb”,”<script> window.opener.document.getElementById( ‘DoRefreshProxy’ ).click();</script>”);

href=”#” vs. href=”javascript:void(0)”

开发的时候有时需要用link(<a>)来触发一些javascript事件,所以常常可以看到如下的代码: <a href="javascript:void(0)" xxxxx="doSomething();return false;">Link</a> 其实,一下写法更合理: <a href="#" xxxxx="doSomething();return false;">Link</a> 或者: <script type="javascript"> function doSomething() { //doSomething return false; } </script> <a href="#" xxxxx="return doSomething();">Link</a> 再或者: <a href=”http://google.com/” xxxxx=”window.open(this.href, ‘popupwindow’, width=400,height=300,scrollbars,resizable’); return false;”> 这样的好处就是可以保存到书签或者收藏夹,可以左键单击,也可以右键使用!