C# 回发时,链接按钮消失

C# 回发时,链接按钮消失,c#,html,asp.net,C#,Html,Asp.net,我创建了一个链接按钮,并在上面放了一个图像 这是我的密码: <asp:LinkButton ID="LinkButton1" runat="server" Text=""> <asp:Image ID="Image1" ImageUrl="" runat="server" /> </asp:LinkButton> 我为图像提供了c#代码隐藏中的ImageUrl,并为链接按钮添加了c#代码中的OnClientClick事件。当页面首次加载时,按

我创建了一个链接按钮,并在上面放了一个图像

这是我的密码:

<asp:LinkButton ID="LinkButton1" runat="server" Text="">
        <asp:Image ID="Image1" ImageUrl="" runat="server" />
</asp:LinkButton>
我为图像提供了c#代码隐藏中的ImageUrl,并为链接按钮添加了c#代码中的OnClientClick事件。当页面首次加载时,按钮正确显示

我的浏览器在回发之前呈现HTML

<a onclick="ClientClick();" id="MainContent_LinkButton1" 
href="javascript:__doPostBack('ctl00$MainContent$LinkButton1','')">
<img id="MainContent_Image1" src="Images/embed.png">
</a>
<a onclick="ClientClick();" id="MainContent_LinkButton1" 
href="javascript:__doPostBack('ctl00$MainContent$LinkButton1','')">
</a>

当我按下此页面中的任何按钮并发生回发时,按钮将消失,但我不会在代码中对回发按钮执行任何操作

我的浏览器在回发后呈现HTML

<a onclick="ClientClick();" id="MainContent_LinkButton1" 
href="javascript:__doPostBack('ctl00$MainContent$LinkButton1','')">
<img id="MainContent_Image1" src="Images/embed.png">
</a>
<a onclick="ClientClick();" id="MainContent_LinkButton1" 
href="javascript:__doPostBack('ctl00$MainContent$LinkButton1','')">
</a>


如果我没有为链接按钮添加OnClientClick或文本,则图像不会消失。或者,如果我为链接按钮设置ViewState false,则图像不会消失。那么,当页面回发时,为什么该按钮会消失?

这是因为回发会清除asp.net页面的所有控件

要保留上一次加载的控件,您需要确保页面加载()中的任何代码都会在“按钮单击”时重新执行,这会导致回发

void button_click()
{
// do stuff

page_load(Dummy Object);

}

使用
EnableViewState=“true”
此代码即使在回发时也能正常工作,并显示图像

<asp:LinkButton ID="LinkButton1" runat="server" Text="">
        <asp:Image ID="Image1" ImageUrl="" runat="server" />
</asp:LinkButton>


if(!Page.IsPostBack)
{
   LinkButton1.OnClientClick = "ClientClick()";
   Image1.ImageUrl = "~/Images/embed.png";
}

你有没有把这个问题重复了两次并删除了前一个问题?如果你删除了前一个答案,你应该知道这一点;你的问题一点也不清楚。请阅读《你好,亚里士多德》,我应用了你说的第一步。我对视图状态不做任何操作。我只需添加OnclientClick并为image按钮提供ImageUrl,问题就发生了。@GaziEnosis您已经在某个地方禁用了viewstate。或者您可能有其他代码重置img。在任何情况下,我在这里说的话都是站着的,就是这样——没有任何问题。因此,请查看并搜索代码中的bugsI,不要在任何地方禁用viewstate。我刚刚创建了一个新的WebForm项目。只需添加我在问题中提到的这几行代码即可。@GaziEnosis确定删除iPostback,然后它就可以工作了。cs页面是:受保护的无效页面加载(对象发送者,事件参数e){LinkButton1.OnClientClick=“ClientClick()”;Image1.ImageUrl=“~/Images/embed.png”}在我的.aspx页面中是:LinkButton,但直到我单击LinkButton2并发生回发时按钮消失。