繁体   English   中英

按ID的图像在服务器端ASP.NET上不可访问

[英]Image by id is not accessible on server side ASP.NET

我一直在尝试通过将其设置为runat="server"并为其指定id来在服务器端调用图像。 但是由于某种原因,我无法在服务器端调用它。

这是代码:

<div class="row">
     <div class="col-lg-12" style="padding-left: 50px;">
          <img id="portalimage" src="Image/steam_logo.png" style="width: 200px; height: 160px;" runat="server" />
     </div>
</div>

这是我要在服务器端执行的操作:

private void CheckForPortal()
{
    int.TryParse(Request.QueryString["ID"], out _gameID);

    string gamePortal = ctr.GetPortal(_gameID);

    if (gamePortal == "Steam")
    {
        //here i want to call the image id
    }
}

依此类推。.基本上,我想通过ID来访问映像,以便可以在服务器端更改映像。 但是由于某种原因,我无法在服务器端找到portalimage ID。

不知道这是否相关。 但是我正在使用母版页

这是母版页代码。

<body runat="server">
<form id="form1" runat="server">

        <div style="height: 928px; min-height: 400px; width: 1903px; background-color: #ffffff; margin-top: 0px;">
            <div class="navbar navbar-inverse navbar-fixed-top" style="height: 67px; width: 1920px;">
                <div class="container" style="width: 1903px; padding-left: 322px;">
                    <a class="navbar-brand" style="margin-top: -15px;" href="Home.aspx">
                        <img alt="Brand" src="Image/AFGIcon.png" />
                    </a>
                    <div class="container" style="height: 67px; width: 200px; padding-top: 15px; float: left;">
                        <asp:TextBox ID="txtSearch" CssClass="form-control" placeholder="Find a game" Width="196" runat="server"></asp:TextBox>
                    </div>
                    <div class="container" style="height: 67px; width: 48px; padding-top: 15px; float: left;">
                        <asp:Button ID="btnSearch" CssClass="btn btn-success" runat="server" Text="Go" />
                    </div>

                    <ul class="nav navbar-nav navbar-right" style="margin-right: 950px; margin-top: 10px;">
                        <li><a href="AllGames.aspx">Games</a></li>
                        <li><a href="AboutUs.aspx">About us</a></li>
                        <li><a href="Contact.aspx">Contact</a></li>
                    </ul>

                </div>
            </div>

            <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
            </asp:ContentPlaceHolder>
        </div>

</form>

<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="/Scripts/JavaScript.js"></script>
<script src="Scripts/videoScript.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/fotorama/4.6.2/fotorama.js"></script>

好吧,所以我让我现在开始工作。 这是因为控件嵌套在一个转发器项中,所以这就是我想出的。

private void CheckForPortal()
{
    int.TryParse(Request.QueryString["ID"], out _gameID);

    string gamePortal = ctr.GetPortal(_gameID);

    foreach (RepeaterItem item in repGameInfo.Items)
    {

        Image img = (Image)item.FindControl("portalimage");

        if (gamePortal == "Steam")
        {
            img.Attributes["src"] = ResolveUrl("http://localhost:16899/Image/steam_logo.png");
        }
        else if (gamePortal == "Origin")
        {
            img.Attributes["src"] = ResolveUrl("~/Image/origin_logo.png");
        }
        else if (gamePortal == "Uplay")
        {
            img.Attributes["src"] = ResolveUrl("~/Image/UPLAY_logo_-_Small.png");
        }
        else if (gamePortal == "Battle.net")
        {
            img.Attributes["src"] = ResolveUrl("~/Image/battleNet-logo.png");
        }
    }        
}

我不得不做一个循环,然后在转发器项中检查控件,然后映射一个类型为image的变量,然后才能找到ID。 感谢您的帮助。

您的图像是否在还具有runat =“ server”属性的表单元素内? 如果没有,那就是为什么它不起作用。 另外,您可以像这样访问source属性:

portalimage.Src = "";

希望这可以帮助。

编辑:我还想提到ASP.Net服务器控件也需要位于带有runat =“ server”的表单元素中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM