此HyperLink
语法无法将参数传递给小型PopUp窗口:
<asp:HyperLink ID="HyperLink2" runat="server" Text="Manage Related Items"
NavigateUrl='<%# "editRelatedItems.aspx?" + "ProductSID=" + Eval("ProductSID") + "&CollectionTypeID=" + Eval("CollectionTypeID")+ "&ProductTypeID=" + Eval("ProductTypeID") %>'
onclick="window.open('editRelatedItems.aspx?','name','height=550, width=790,toolbar=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=no'); return false;)
target="_blank" />
<asp:HyperLink>
标记看起来不接受"onclick"
。关于如何获得弹出的任何想法可以获得这些参数?我正在使用C#,所以也许有一种方法可以在后面的代码中构建NavigateURL
字符串?
感谢您的任何见解。
答案 0 :(得分:3)
您可以从服务器端代码
HyperLink2.Attributes.Add("OnClick", "yourstuffhere");
将允许您指定OnClick项目。
您还可以将NavigateUrl
设置为“javascript:window.open ...”,如果您愿意,可以再次使用后面的代码完成。
也
鉴于Hyperlink只是mill锚标记的标准运行,如果你在后面的代码中进行所有这些处理,那么自己构建整个链接可能更容易,以节省一些麻烦。
答案 1 :(得分:1)
您需要服务器端超链接控制吗?如果没有,我建议只使用标准的HTML锚标记,或者如果需要它动态显示,只需使用文字标记在后端生成它并将标记写入(包括onclick)。你需要问自己的问题是“你觉得幸运吗?”和“我需要服务器控件吗?”
如果不熟悉它,请研究一下ItemDataBound事件。
放入DataList的ItemDataBound事件的密钥代码:
Dim lit as Literal = CType(e.Item.FindControl("Literal1"), Literal)
lit.Text = "<a onclick='YOURJAVASCRIPT' href='#'>YOUR TEXT</a>"
这绝不是您应该在活动中加入的整个代码,就像我说的那样,研究活动可以提供的内容并从那里开始。
答案 2 :(得分:1)
您在代码中使用onclick时缺少结束引用"
并且有一个额外的括号)
。那可能是你的问题。
onclick="window.open('editRelatedItems.aspx?','name','height=550, width=790,toolbar=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=no'); return false;"
我发现javascript弹出窗口与ASP:HyperLink
不能很好地匹配;尝试通过普通的锚标记创建链接:
<a id="HyperLink2"
runat="server"
NavigateUrl='<%# "editRelatedItems.aspx?ProductSID=" + Eval("ProductSID") + "&CollectionTypeID=" + Eval("CollectionTypeID")+ "&ProductTypeID=" + Eval("ProductTypeID") %>'
onclick="window.open('editRelatedItems.aspx?','name','height=550, width=790,toolbar=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=no'); return false;"
Target="_blank">
Manage Related Items
</a>
答案 3 :(得分:1)
<asp:HyperLink
ID="HyperLink2"
runat="server"
Text="Manage Related Items"
NavigateUrl="#"
onClick='<%# "window.open('editRelatedItems.aspx" +
"?ProductSID=" + Eval("ProductSID") +
"&CollectionTypeID=" + Eval("CollectionTypeID")+
"&ProductTypeID=" + Eval("ProductTypeID") +
",'name','height=550, width=790,toolbar=no,
directories=no,status=no,
menubar=no,scrollbars=yes,resizable=no');
return false;%>'
Target="_blank" />
这应该可行,但我真的会创建一个调用javascript方法来打开窗口。
<script type="text/javascript">
function openRelatedItems(productSID, collectionTypeId, productTypeId) {
window.open('editRelatedItems.aspx" +
"?ProductSID=" + productSID +
"&CollectionTypeID=" + collectionTypeID +
"&ProductTypeID=" + productTypeID +
",'name','height=550, width=790,toolbar=no,
directories=no,status=no,
menubar=no,scrollbars=yes,resizable=no');
}
</script>
答案 4 :(得分:0)
答案 5 :(得分:0)
使用OnClientClick
代替OnClick
。
答案 6 :(得分:0)
<asp:HyperLink
ID="HyperLink2"
runat="server"
Text="Manage Related Items"
NavigateUrl="#"
onClick='<%# "window.open('editRelatedItems.aspx" +
"?ProductSID=" + Eval("ProductSID") +
"&CollectionTypeID=" + Eval("CollectionTypeID")+
"&ProductTypeID=" + Eval("ProductTypeID") +
",'name','height=550, width=790,toolbar=no,
directories=no,status=no,
menubar=no,scrollbars=yes,resizable=no');
return false;%>'
Target="_blank" />
你在启动url值之后关闭了。这段代码显示错误,服务器标签没有被接通