我有一个主页面上有一个更新面板。我正在处理的应用程序的一个页面有一个自定义控件,上面有一些asp:textboxes。该控件还具有gridview。
当单击一行的asp:linkbutton时,OnRowCommand事件会触发并正确地执行其魔法,其中一部分是设置asp:textbox的“Text”属性。这有效。
我的问题是更新未反映在用户界面中。
UpdatePanel:
<asp:ScriptManager ID="scriptManager" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="updPanel" runat="server">
<ContentTemplate>
[...more code...]
LinkButton:
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" CommandArgument='<%# Eval("ID")%>' CommandName="EDIT" runat="server">Edit</asp:LinkButton>
</ItemTemplate>
事件处理程序:
protected void RowCommand(object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName)
{
case "EDIT":
//stuff happens here
[ASP:Textbox].Text = [Result of stuff that happened];
^this is what isn't reflected on the page
break;
我知道我在页面生命周期中遗漏了一些东西,但我正在画一个空白。
答案 0 :(得分:2)
这花了几个小时。
看起来,仅当CommandName属性设置在“Edit”(以及任何其他标准命令)之外的其他内容时,才会反映更改。尝试将其设置为“EditThis”,它适用于我。
答案 1 :(得分:0)
protected void RowCommand(object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName)
{
case "EDIT":
//stuff happens here
[ASP:Textbox].Text = [Result of stuff that happened];
^this is what isn't reflected on the page
// ADD THIS
updPanel.Update();
break;