我知道在StackOverflow上有几百个这样的问题的答案,但我不是'得到它'。
我在C#/ asp.net上有一个购物车。在产品页面上有一个“预约”按钮。第一次单击按钮时,我希望它隐藏产品详细信息面板(名为ProdDet)并显示日历面板。我的挑战是:
我无法以OnClientClick
的身份执行此操作,因为我正在使用OnClick
进行其他处理,并且无法让它们共同行动。
我不太了解我读过的很多东西。我是ASP.NET和C#的新手,可以使用一点手持。
我的代码中有几个地方我想使用HidePanel和ShowPanel
我的相关伪代码(工作与否):
服务器端:
public void CalendarButton_Click(object sender, EventArgs e)
{
some processing
if (everything ok) {
CalendarLiteral.Text += "<iframe...";
Hide_Panel(); // not working.
}
}
public void HidePanel()
{
Page.ClientScript.RegisterStartupScript(
...just not getting it or even sure this is the right thing to do.
);
}
主管部分的客户端:
<script type="text/javascript">
function HideContent(d) {
document.getElementById(d).style.display = "none";
Alert("Hiding " + d);
}
</script>
这并不是非常糟糕,但是这些服务器/客户端/ .NET的东西在来自直接C背景时并不容易自学。任何帮助表示赞赏!
答案 0 :(得分:3)
您始终可以使用以下方式编写javascript:
Page.ClientScript.RegisterStartupScript(key, "HideContent('" + ControlID.ClientID + "');", true);
或者:
ScriptManager.RegisterStartupScript(..);
列出的参数可能不准确,但这基本上是您可以做的。如果您在服务器上有对控件的引用,则可以通过这种方式在客户端上调用方法。
答案 1 :(得分:0)
我不确定我是否得到了你需要的东西,但你为什么不把东西包装在不同的......
<asp:Panel ID="pnl1"...
您可以在代码中设置pnl1.visible = false
或真实。
答案 2 :(得分:0)
您需要使用正确的参数调用函数HideContent
。注册一个可以完全执行此操作的脚本。
Page.ClientScript.RegisterStartupScript(this.GetType(),"Script name",
"<script type=text/javascript>
HideContent('foo')
</script>");