新動態控件,但直到現在我已經在我的GridView中的 模板字段中成功創建它們,最近從超鏈接切換到鏈接按鈕 ,但不得不作出一些更改但仍然沒有工作動態鏈接按鈕沒有調用命令時點擊
在我的網頁我有以下代碼(有刪節,以突出的部分)
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
...
...
TemplateField tf = new TemplateField();
tf.HeaderText = "Action";
tf.ItemTemplate = new AssignPage.MyTemplate(..., mylb);
GridView1.Columns.Add(tf);
protected void Page_PreInit(object sender, EventArgs e)
{
LinkButton lb = new LinkButton();
lb.Text = "AssignAll";
lb.Command += new CommandEventHandler(AssignAll_Click);
lb.CommandName = "XXX";
this.mylb = lb;
protected void AssignAll_Click(object sender, CommandEventArgs e)
{
string[] arg = new string[2]; // BREAK POINT HERE
arg = e.CommandArgument.ToString().Split(';');
...
...
Response.Redirect("BaseAndRepeats.aspx?id=" + r.Event.ID);
在模板類我有我有
LinkButton lb;
public MyTemplate(..., LinkButton _lb)
{
...
lb = _lb;
...
public void InstantiateIn(System.Web.UI.Control container)
{
...
...
// various conditional statements
lb.CommandArgument = mylist[rowCount].ReqtID.ToString() + ";" + mylist[rowCount].RotaUser;
container.Controls.Add(lb);
...
在處理程序中的斷點從未達到
我想我是創造在正確的地方,當我在LinkButton的點擊有一個叫 到Page_PreInit LinkButton的網格中顯示的相當愉快 LinkButton的和Page_Load,正如我期望的 這是一個回傳。 但AssignAll_Click永遠不會被調用。
在瀏覽器頁腳顯示 「的javascript:__dooPsotabck(...」 當你將鼠標懸停 在buttonlink
似乎沒有工作。我還讀了控件應該添加到頁面,但我不知道如何做到這一點,我從來沒有與我的其他控件。 – hardya 2015-02-05 16:13:20
所以,我還沒有最終確定這是一個答案,但我已經做了'創建templatefield將鏈接按鈕傳遞給它的模板,並將templatefield添加到網格'以在回發中發生。 這對我來說並沒有發生,因爲我立即重定向,並且我不認爲控件需要實際返回到要調用的事件的模板域和網格中,我認爲這只是渲染所必需的。 – hardya 2015-02-05 16:41:26
編輯我的回覆。是的,控件需要在PostBack上創建,或者他們只是停止存在,並且他們的事件不會被觸發。 – 2015-02-05 16:45:52