无法在服务器端访问按 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>
您的图像是否位于也具有 runat="server" 属性的表单元素中?如果不是,那就是它不起作用的原因。此外,您可以像这样访问源属性:
portalimage.Src = "";
希望对您有所帮助。
韦德
编辑:我还想提一下 ASP.Net 服务器控件也需要位于带有 runat="server."
的表单元素内
好的,我已经开始工作了。这是因为控件嵌套在中继器项中,所以这就是我想出的。
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");
}
}
}
我不得不做一个循环并检查转发器项目中的控件,然后我创建一个图像类型的变量,然后我可以找到 id。感谢大家的帮助。
我一直在尝试通过将图像设为 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>
您的图像是否位于也具有 runat="server" 属性的表单元素中?如果不是,那就是它不起作用的原因。此外,您可以像这样访问源属性:
portalimage.Src = "";
希望对您有所帮助。
韦德
编辑:我还想提一下 ASP.Net 服务器控件也需要位于带有 runat="server."
的表单元素内好的,我已经开始工作了。这是因为控件嵌套在中继器项中,所以这就是我想出的。
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");
}
}
}
我不得不做一个循环并检查转发器项目中的控件,然后我创建一个图像类型的变量,然后我可以找到 id。感谢大家的帮助。