新增事件委託

2021-06-01 08:34:41 字數 1402 閱讀 4747

addhandler xdlstfriends.editcommand, addressof xdlstfriends_itemcommand

內層控制項資料繫結與事件宣告在外層的itemdatabind中實現;例子中外層datalist的id為dlquestion,內層為dlitem;**如下

private void dlquestion_itemdatabound(object sender, system.web.ui.webcontrols.datalistitemeventargs e)

dlitem .itemcommand += new datalistcommandeventhandler(dlitem_itemcommand);

dlitem .itemdatabound += new datalistitemeventhandler(dlitem_itemdatabound);

int qid = ((invquestion)e.item.dataitem).que_id;

arraylist al = invcontroller.getitemcollection( qid );

dlitem .datasource = al;

dlitem .databind();

} }

} 其中viewstate對狀態資訊的讀取和下面的儲存聯絡後再討論;

下面以內層datalist的edit事件為例;

private void dlitem_itemcommand(object source, datalistcommandeventargs e)

//得到內層datalist

datalist dl = (datalist)e.item.parent;

dl.edititemindex = e.item.itemindex;

//儲存狀態資訊

viewstate["repindex"] = e.item.itemindex;

// response.write(e.item.itemindex);

//重新繫結內層datalist資料

arraylist al = invcontroller.getitemcollection( qid );

dl.datasource = al;

dl.databind();

} }

在內層datalist中e.commandname="edit"事件中必須儲存viewstate["index"] = e.item.index資訊;否則在e.commandname="update"中得不到editindex的資訊.需要儲存viewstate的原因是:由於暫時沒有找到更好的方法,內層datalist資料繫結需要在每個事件發生時對外層datalist重新繫結,也就是在page.load中載入databind()事件,對效率有一定影響

js動態新增事件 事件委託

其所謂的動態新增事件實質就是指js中的事件委託。我們知道在js中,事件處理只能繫結在當前被選中的元素上,換句話也就是說,事件處理只能繫結在當前文件已經存在的元素上!但是,往往小夥伴們都會遇到乙個問題就是,我的元素是後來動態新增到頁面的,而我又想給該元素繫結事件,怎麼處理?為了說明白這一問題,我們假設...

js動態新增事件 事件委託

其所謂的動態新增事件實質就是指js中的事件委託。我們知道在js中,事件處理只能繫結在當前被選中的元素上,換句話也就是說,事件處理只能繫結在當前文件已經存在的元素上!但是,往往小夥伴們都會遇到乙個問題就是,我的元素是後來動態新增到頁面的,而我又想給該元素繫結事件,怎麼處理?為了說明白這一問題,我們假設...

JQ 為未來元素新增事件處理器 事件委託

隨著dom結構的複雜化和ajax等動態指令碼技術的運用,有了較多的動態新增進來的元素,直接用jq新增click事件會發現新新增進來的元素並不能直接選取到,在這裡就需要用到事件委託方法,jq為事件委託提供了live dalegate 和on 方法。我們知道,dom在為頁面中的每個元素分派事件時,相應的...