.NET技术支持者

  博客园 :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::
1. 打开新的窗口并传送参数:
//传送参数:
response.write("<script>window.open(’*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="++"’)</script>")
  
//接收参数:
string a = Request.QueryString("id");
string b = Request.QueryString("id1");
2.为按钮添加对话框
Button1.Attributes.Add("onclick","return confirm(’确认?’)");
button.attributes.add(
"onclick","if(confirm(’are you sure?’)){return true;}else{return false;}")
3.删除表格选定记录
int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString()
4.删除表格记录警告
private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e)
{
 
switch(e.Item.ItemType)
 
{
  
case ListItemType.Item :
  
case ListItemType.AlternatingItem :
  
case ListItemType.EditItem:
   TableCell myTableCell;
   myTableCell 
= e.Item.Cells[14];
   LinkButton myDeleteButton ;
   myDeleteButton 
= (LinkButton)myTableCell.Controls[0];
   myDeleteButton.Attributes.Add(
"onclick","return confirm(’您是否确定要删除这条信息’);");
   
break;
  
default:
   
break;
 }

}

5.点击表格行链接另一页
private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
 
//点击表格打开
 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
  e.Item.Attributes.Add(
"onclick","window.open(’Default.aspx?id=" + e.Item.Cells[0].Text + "’);");
}

  
//双击表格连接到另一页
  
//在itemDataBind事件中
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
 
string OrderItemID =e.item.cells[1].Text;
 
 e.item.Attributes.Add(
"ondblclick""location.href=’../ShippedGrid.aspx?id=" + OrderItemID + "");
}

   
//双击表格打开新一页
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
 
string OrderItemID =e.item.cells[1].Text;
 
 e.item.Attributes.Add(
"ondblclick""open(’../ShippedGrid.aspx?id=" + OrderItemID + "’)");
}

  ★特别注意:【
?id=】 处不能为 【?id =
6.表格超连接列传递参数
<asp:HyperLinkColumn Target="_blank" headertext="ID号" DataTextField="id" NavigateUrl="aaa.aspx?id=’
 <%# DataBinder.Eval(Container.DataItem, "数据字段1")%>’ & name=’<%# DataBinder.Eval(Container.DataItem, "数据字段2")%>’ />
7.表格点击改变颜色
if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)
{
 e.Item.Attributes.Add(
"onclick","this.style.backgroundColor=’#99cc00’;
    this.style.color=’buttontext’;this.style.cursor=default’;");
}
 
  写在DataGrid的_ItemDataBound里
if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Attributes.Add(
"onmouseover","this.style.backgroundColor=’#99cc00’;
   this.style.color=’buttontext’;this.style.cursor=default’;");
e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=’’;this.style.color=’’;");
}

8.关于日期格式

日期格式设定
DataFormatString
="{0:yyyy-MM-dd}"
  
//我觉得应该在itembound事件中
e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString("yyyy-MM-dd"))
9.获取错误信息并到指定页面
//不要使用Response.Redirect,而应该使用Server.Transfer
  e.g
// in global.asax
protected void Application_Error(Object sender, EventArgs e) {
if (Server.GetLastError() is HttpUnhandledException)
Server.Transfer(
"MyErrorPage.aspx");

//其余的非HttpUnhandledException异常交给ASP.NET自己处理就okay了 :)
}

  
//Redirect会导致post-back的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理 
10.清空Cookie
Cookie.Expires=[DateTime];
Response.Cookies(
"UserName").Expires = 0
web窗体状态栏内类似跑马等效果的实现
第一步:定义一个javascript代码段 

<script language="javascript"> 
var strMsg = "          欢迎光临本站点by loveFXN          "
function DoLoad(index) 

window.status 
= strMsg.substr(index,index+10); 
index 
= (index>=strMsg.length-10?0:index+1); 
window.setTimeout('DoLoad('
+index+')',300,"javascript"); 
}
 
</script> 

该代码的功能是:每隔300毫秒则执行一次窗体状态栏内容的更新,并对显示内容长度作判断。 

注意其中strMsg内的空格用来实现一段空白效果。 

第二步: 

在 
<body onload="DoLoad(0)">内添加函数的实现。 

看看效果,是不是比较好玩? 

遍历获取ASP.NET页面控件的名称及值 
如果直接用Page.Control 获取的到只是最顶层的页面元素,而真正的拖拉放上去的文本框或Label之类的控件,还隐藏在这些顶层页面元素的里面,所以需要再次遍历。
函数及使用方法如下,结果保存在这里选择了HashTable的方式。

protected void Page_Load(object sender, EventArgs e)
    
{
        getAllControlValue(
this);
    }


    Hashtable getAllControlValue( 
object PageOrUserControl )
    
{
        Hashtable rtn 
= new Hashtable();

        
foreach (Control ctr in (PageOrUserControl as Page).Controls)
        
{
            getControlValue(ctr, rtn);
        }


        
return rtn;
    }


    
void getControlValue(Control ctrIn,Hashtable ht)
    
{
        
foreach (Control ctr in ctrIn.Controls)
        
{
            Type controlType 
= ctr.GetType();

            
switch (controlType.ToString())
            
{
                
case "System.Web.UI.WebControls.TextBox":
                    TextBox controlTextBoxObj 
= (TextBox)ctr;
                    
string controlTextBoxName = controlTextBoxObj.ID;
                    
string controlTextBoxValue = controlTextBoxObj.Text;
                    ht.Add(controlTextBoxName, controlTextBoxValue);
                    
break;
                
case "System.Web.UI.WebControls.Label":
                    Label controlLabelObj 
= (Label)ctr;
                    
string controlLabelName = controlLabelObj.ID;
                    
string controlLabelValue = controlLabelObj.Text;
                    ht.Add(controlLabelName, controlLabelValue);
                    
break;
                
//case "其他类型":
                
//    其它类型 controlTextBoxObj = (其它类型)ctr;
                
//    string controlTextBoxName = controlTextBoxObj.ID;
                
//    string controlTextBoxValue = controlTextBoxObj.Text;
                
//    ht.Add(controlTextBoxName, controlTextBoxValue);
                
//    break;
                default:
                    
break;
            }

        }

    }

posted on 2005-11-01 21:23  LDAR泄漏检测与修复  阅读(856)  评论(0编辑  收藏  举报