protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "edit")
{
e.Item.Controls.Clear();
EditText = new TextBox();
EditText.CssClass = "text width15p";
e.Item.Controls.Add(EditText); EditBut = new LinkButton();
EditBut.EnableViewState = true;
EditBut.ID = "EditBut";
EditBut.CssClass = "btn floatleft";
EditBut.Text = "保 存";
EditBut.CommandName = "save";
EditBut.CommandArgument = e.CommandArgument.ToString();
e.Item.Controls.Add(EditBut);
EditBut.Click += new System.EventHandler(EditClick);
}
}这个EditBut点击后消失,就是回发后这个控件消失。怎么样让他不消失,请各路高手指教。
{
if (e.CommandName == "edit")
{
e.Item.Controls.Clear();
EditText = new TextBox();
EditText.CssClass = "text width15p";
e.Item.Controls.Add(EditText); EditBut = new LinkButton();
EditBut.EnableViewState = true;
EditBut.ID = "EditBut";
EditBut.CssClass = "btn floatleft";
EditBut.Text = "保 存";
EditBut.CommandName = "save";
EditBut.CommandArgument = e.CommandArgument.ToString();
e.Item.Controls.Add(EditBut);
EditBut.Click += new System.EventHandler(EditClick);
}
}这个EditBut点击后消失,就是回发后这个控件消失。怎么样让他不消失,请各路高手指教。
http://blog.csdn.net/liudongyue1987/archive/2009/05/04/4148942.aspx
建议
1:postback 后再绑定一次(这个不实用)
2.先放控件,设置属性 visable = false, 然后也绑定事件,当command 是edit 的时候再 显示出来
比较“科学”的处理流程比较清晰简单,在控件的事件中很少修改控件,而是采取“V-->C-->M-->V”这种控制形式,即控件的事件中仅修改系统模型数据(而不是修改任何控件)。事实上,你可以在声明界面时使用绑定表达式等方法,根据数据来绑定出Repeater1的列,其中的文本和按钮的Visible属性可以绑定到数据属性上,而Repeater1_ItemCommand事件中只要修改数据属性然后调用一句“Repeater.DataBind();”就可以了。
调用一句Repeater1.DataBind();后Repeater1其他行消失了。