實現在webform中雙擊datagrid控制元件選擇到一行,並且把該行資料獲取

hljhrbsjf發表於2008-02-27

下面是填寫DataGrid客戶端程式碼的一些經驗,希望能和大家分享。

private void dg_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
int idx = e.Item.ItemIndex;
if (idx != -1)
{
e.Item.Attributes["OndblClick"] = "dgDbClick(" + idx + ")";
e.Item.Attributes["style"] = "cursor:hand";
}
}

----------------------------
客戶端:
function dgDbClick(idx)
{
alert(idx);

windows.open.............
}

給你我的程式碼,雙擊後關閉當前視窗,向父視窗返回一個陣列

伺服器端完成的雙擊程式碼




cs
private void DataGrid1_ItemCreated(object sender, DataGridItemEventArgs e)
{
string item = e.Item.ItemIndex.ToString();
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("ondblclick","javascript:__doPostBack('dblclick','" + item + "');");
}
}
private void dblclick_ServerClick(object sender, System.EventArgs e)
{
int item = Int32.Parse(Request.Form["__EVENTARGUMENT"]);
Response.Write(this.DataGrid1.Items[item].Cells[0].Text);
}

在DataGrid_ItemDataBound的事件中增加下面語句就行了
if(e.Item.ItemType == ListItemType.AlternatingItem ||
e.Item.ItemType == ListItemType.Item)
{
//為資料項新增滑鼠雙擊屬性
e.Item.Attributes.Add("onDblclick", "window.open('test/test.aspx?ID="+e.Item.Cells[0].Text+"','','width=800,height=600')");

}
想要什麼資料,在id=後面增加你想要的資料。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/631872/viewspace-1000034/,如需轉載,請註明出處,否則將追究法律責任。

相關文章