private void DisplayImages(string imageFile)
{
Image pImage = new Image();
pImage.ImageUrl = imageFile;
this.Controls.Add(pImage);
}
以上是当前代码,但图像未显示,我想检查URL值。我有一个javascript函数,它将检查URL并返回URL。我需要做的就是使用所谓的POST将从javascript返回的URL分配给上面的图像。如何在上面的函数中实现代码隐藏呢?
请建议。
更新1:我忘记添加“this.Controls.Add(pImage);”。我在上面添加了。
更新2:我在页面的onLoad期间创建了图像控件(如代码所示)。这个URL通常更长,来自XML。我在分配给图像控件之前打印了URL值。
现在由于某种原因,图像无法在浏览器中呈现。刚才我发现即使在单独的浏览器中呈现该URL也会给我HTTP 403.构建该URL并以XML格式存储的人告诉我应该使用Javascript并通过发送此URL进行POST。我需要知道如何在下面的代码中执行javascript,以便在POST方法之后分配图像URL。希望这澄清。
更新3 :以下是ASPX页面中的Javascript。
<script type="text/javascript">
// Open URL in new window with a a post instead of the get
function posturl(url) {
alert("I am here");
var qsBegin = url.indexOf("?");
var qsPattern = new RegExp("[?&]([^=]*)=([^&]*)", "ig");
var match = qsPattern.exec(url);
var params = new Array();
while (match != null) {
// matched text: match[0]
// match start: match.index
// capturing group n: match[n]
var matchID = match[1];
if ( matchID.charAt(0) == "&" ) {
matchID = matchID.substr(1);
}
if ( params[match[1]] != null && !(params[match[1]] instanceof Array) ) {
var subArray = new Array();
subArray.push(params[match[1]]);
subArray.push(unescape(match[2]));
params[match[1]] = subArray;
} else if ( params[match[1]] != null && params[match[1]] instanceof Array ) {
params[match[1]].push(unescape(match[2]));
} else {
params[match[1]]=unescape(match[2]);
}
match = qsPattern.exec(url);
}
var myForm = document.createElement("form");
//myForm.setAttribute("target", "_blank");
myForm.method="post" ;
myForm.action = url.substring(0,qsBegin) ;
for (var k in params) {
var myInput;
// Check for params with the same name.
if ( params[k] instanceof Array ) {
for ( var i=0; i<params[k].length; i++ ) {
myInput = createFormInput(k, params[k][i]);
myForm.appendChild(myInput) ;
}
} else {
myInput = createFormInput(k, params[k]);
myForm.appendChild(myInput);
}
}
document.body.appendChild(myForm) ;
myForm.submit() ;
document.body.removeChild(myForm) ;
//return "did you get what you wanted";
}
</script>
答案 0 :(得分:1)
没有什么区别如何获取您的URL并将其设置为Image控件,使用javascript并回发URL没有意义,因为您已经在服务器端获得了该URL,您应该将其设置为Image控件,假设URL有效。你应该做的第一件事是测试URL是否有效,只需将其粘贴到浏览器中,看看它是否有效,如果没有,你应该与那个为你提供该URL的人交谈。
顺便说一句。不要动态创建图像控件,在标记中创建图像控件并在DisplayImages方法中指定ImageUrl属性,如果必须在OnInit中创建ImageControls,请执行此操作。
更新3条评论:
好吧,IMO这是疯了,请不要冒犯:)但是我可以看到这个javascript改变了你从XML获得的原始URL,我认为你能做的最好的事情是在c#中复制那个Javascript代码,例如。用C#在服务器端对URL做同样的事情。问题在于您在服务器上生成页面,其中包含用于图像控制的URL,在上生成服务器上的整个页面然后执行javascript,然后更改Url图像控制。也许这个贴到服务器aproach的帖子对某些情况有好处,但不是你的。不过
另一次更新
好的Anirudh,在更多地了解这个javascript之后,您似乎正在尝试使用图像生成服务,并且您必须将参数发布到他们的服务中,它将返回基于您在其中设置的参数生成的图像的URL那个网址,是吗?
如果是这样,你应该首先写下,你是否看到从中提取信息需要多少努力?请投入更多精力提出问题,最好删除这个问题并询问另一个问题,但这一次更好地描述了你想做什么。