我在ASP.NET中的网站有问题。我的应用程序包含一些能够更改的按钮(图像按钮)。例如:当我按下一个空按钮时,我希望能够在其中放置图片和网站。我用popupbox做了这个。
我遇到的问题:
当我试图给按钮2一个图像和一个网站时,它给按钮1一个图像和网站,因为我告诉它:
public partial class Ingelogd : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Image1_Click(object sender, ImageClickEventArgs e)
{
if (DropDown.SelectedItem.Value == "Youtube")
{
Btn_1.ImageUrl = "~/Images/Youtube.png";
Btn_1.PostBackUrl = ("http://www.youtube.com");
Btn_1.OnClientClick = "";
}
else
{
}
}
现在我实际上想要Btn_2一样,但是我必须编写完全相同的代码但是将Btn_1更改为Btn_2。这是不可能的,因为我想要19个网站(youtube但也有facebook,twitter等)我也将有19个按钮(目前我只有Btn_1和Btn_2)。这意味着我必须制作19 * 19 = 361个代码。我假设有一种方法可以为此制作子程序。我的老师还告诉我,我可以使用cookies来点击按钮,但我不知道如何用图像按钮制作一个cookie。
解决此问题的最佳解决方案是什么?
我也在这里有想要查看该代码的ASP.NET代码。
<title>Ingelogd</title>
<script type="text/javascript">
<!--
function toggle_visibility(id) {
var e = document.getElementById(id);
if (e.style.display == 'block')
e.style.display = 'none';
else
e.style.display = 'block';
}
//-->
</script>
<style type="text/css">
#popupBoxOnePosition{
top: 0; left: 0; position: fixed; width: 100%; height: 120%;
background-color: rgba(0,0,0,0.7); display: none;
}
.popupBoxWrapper{
width: 550px; margin: 50px auto; text-align: left;
}
.popupBoxContent{
background-color: #FFF; padding: 15px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
Dit is de pagina als je ingelogd bent.
</div>
<div id="popupBoxOnePosition">
<div class="popupBoxWrapper">
<div class="popupBoxContent">
<h3>Instellingen</h3>
<p>Kies uit een van de volgende links.</p>
<asp:DropDownList ID="DropDown" runat="server">
<asp:ListItem >Select</asp:ListItem>
<asp:ListItem >Youtube</asp:ListItem>
<asp:ListItem >Facebook</asp:ListItem>
</asp:DropDownList>
<br />
<asp:ImageButton ID="Button1" runat="server"
OnClick="Image1_Click"/>
<br />
<asp:Button ID="Button_afsluiten" runat="server" Height="48px" OnClientClick="toggle_visibility('popupBoxOnePosition');return false;" Text="Afsluiten" />
</div>
</div>
</div>
<asp:ImageButton ID="Btn_1" runat="server" Height="48px" OnClientClick="toggle_visibility('popupBoxOnePosition');return false;"
ImageUrl="" />
<asp:ImageButton ID="Btn_2" runat="server" Height="48px" OnClientClick="toggle_visibility('popupBoxOnePosition');return false;"
ImageUrl="" />
</form>
</body>
</html>
答案 0 :(得分:0)
您可以尝试向DropDownList添加属性并使用它。例如,添加两个新属性ImageUrl和SiteUrl。您的代码应该是:
protected void Image1_Click(object sender, ImageClickEventArgs e)
{
Btn_1.ImageUrl = DropDown.Attrubutes["ImageUrl"];
Btn_1.PostBackUrl = DropDown.Attrubutes["SiteUrl"];
Btn_1.OnClientClick = "";
}
答案 1 :(得分:0)
我从来没有使用过asp,但大多数代码只是简单的c#,所以我应该很好。 制作19个单独的函数,每个按钮一个,并动态添加图像和URL而不是使用ifs:
protected void Image1_Click(object sender, ImageClickEventArgs e)
{
String val = DropDown.SelectedItem.Value;
Btn_1.ImageUrl = "~/Images/" + val + ".png";
Btn_1.PostBackUrl = "http://www." + val + ".com";
Btn_1.OnClientClick = "";
}
如果你想要所有按钮都有1个功能,你必须给你所有的按钮Name
并检查功能内的发件人姓名。