回发后,asp.net链接按钮图像不可见

时间:2010-01-25 10:11:29

标签: asp.net postback

我有一个链接按钮,里面有图像和标签。 回发后,图像和标签不可见。

< asp:LinkButton ID="AddNewRunLinkButton" runat="server" CssClass="Navigationlocalnav"
OnClick="AddNewRunLinkButton_Click" >
&nbsp;
  < img id="Img1" src="../../Images/add_newIcon.gif" runat="server" alt="Add New Run" />
  < asp:Label ID="addText" Text=" Add New Run" runat="server"></asp:Label>
< /asp:LinkButton>

此链接按钮用于导入/导出数据。我在点击此链接按钮(AddNewRunLinkBut​​ton)时添加了一个属性,以使用javascript - SetInterval函数显示进度条。 如果我删除此属性,则会显示图像和标签,否则只会显示链接按钮。

AddNewRunLinkButton.attributes.add("onclick","javascript:DisplayProgress()");

function DisplayProgress()
{
  timeid = setInterval("addBlock",100)
}

function Addblock()
{
 // Display a progress bar as follows - Increase the width of a div tag at this interval
}

任何帮助?

2 个答案:

答案 0 :(得分:0)

由于你的代码示例没有太大的作用,我发布了一些我认为可能是你想要做的事情。

标记和Javascript:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>Untitled Page</title>
  <script language="javascript" type="text/javascript">
    var timeID = null;
    var width = 0;

    function DisplayProgress() {
      timeID = setInterval('AddBlock();', 100);
    }

    function AddBlock() {
      var p = document.getElementById("progressDiv");
      if (width < 1000) {
        width += 100;
        p.style.width = width + "px";
      }
      else
        timeID = clearInterval(timeID);
      }
  </script>
</head>
<body>
  <form id="form1" runat="server">
    <div>
      <asp:LinkButton runat="server" ID="lbAddNewRun" OnClick="lbAddNewRun_Click">
        <img src="--url to an image--" alt="Add New Run" />
        Add New Run
      </asp:LinkButton>
    </div>
    <div id="progressDiv" style="background-color: Green; width: 0px; height: 20px;"></div>
  </form>
</body>
</html>

代码隐藏:

protected void Page_Load(object sender, EventArgs e)
{
  lbAddNewRun.Attributes.Add("OnClick", "javascript:DisplayProgress();");
}

protected void lbAddNewRun_Click(object sender, EventArgs e)
{
  // Export/Import code.
}

对于我来说,这并不是“隐藏”图像。

<强>注:
而不是在代码隐藏中添加OnClick事件,您可以直接在标记中添加它,因为它不是动态创建的:

      <asp:LinkButton runat="server" ID="lbAddNewRun" OnClick="lbAddNewRun_Click" OnClientClick="DisplayProgress();">
        <img src="--url to an image--" alt="Add New Run" />
        Add New Run
      </asp:LinkButton>

答案 1 :(得分:0)

我会使用异步调用来显示进度条而不是你在这里做的事情。有时,当您附加客户端和服务器端事件时,页面呈现无法按预期工作。在这种情况下,您正在使用带有SetInterval的Javascript计时器,我相信这会导致标签消失。