【发布时间】:2011-06-28 15:07:44
【问题描述】:
答案可能很明显,但我没有看到任何我可以使用的东西,除了相反的——从孩子操纵父母——所以我发布了新的。
我正在开发我的公司购买的购物车系统,而且我是 .NET 的新手,所以我什至可能无法正确地提出这个问题。
我的商店在结帐部分有一个页面,基本上如下所示:
PaymentPage.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="PaymentPage.ascx.cs" Inherits="ConLib_PaymentPage" %>
<%@ Register Assembly="CommerceBuilder.Web" Namespace="CommerceBuilder.Web.UI.WebControls" TagPrefix="cb" %>
<%@ Register Src="~/Checkout/PaymentForms/CreditCardPaymentForm.ascx" TagName="CreditCardPaymentForm" TagPrefix="uc" %>
<ajax:UpdatePanel ID="PaymentAjax" runat="server">
<ContentTemplate>
On page controls, etc.
Then a checkbox saying they've read the terms and agree:
<div id="terms">
<asp:CheckBox ID="AgreeTerms" runat="server" Text="I agree to the Terms Of Service" CssClass="Terms" AutoPostBack="True" OnCheckedChanged="AgreeTerms_Clicked"/>
</div>
我要完成的任务是在 OnCheckedChanged 事件中我要启用或禁用 CreditCardPaymentForm 控件内的图像按钮。
该代码如下所示:
<%@ Control Language="C#" ClassName="CreditCardPaymentForm" EnableViewState="false" %>
<%@ Register Assembly="CommerceBuilder.Web" Namespace="CommerceBuilder.Web.UI.WebControls" TagPrefix="cb" %>
<%@ Register assembly="wwhoverpanel" Namespace="Westwind.Web.Controls" TagPrefix="wwh" %>
... a <script> block with some code and then HTML
<span class="TTAActionButton">
<br>
<asp:ImageButton ID="CreditCardButton" runat="server" ToolTip="Pay With Card" SkinID="TTAPlaceOrder" OnClick="CreditCardButton_Click" />
<asp:HiddenField runat="server" ID="FormIsSubmitted" value="0" />
<br /><br /><br />
</span>
我希望能够根据是否选中复选框来打开和关闭 CreditCardButton。我会在页面代码隐藏中有一个例程,例如:
public void AgreeTerms_Clicked(object sender, EventArgs e)
{
if (AgreeTerms.Checked)
CreditCardButton.Enabled = false;
}
但是我尝试的每一个排列都失败了。
我已经缩写了代码,但如果我遗漏了太多,请告诉我。
感谢您的帮助,如果您认为我对 .NET 一无所知,那么非常感谢! 吉姆
【问题讨论】:
-
“失败”是指它不会编译/抛出关于未知控件 id 的错误,还是不能按您期望的方式工作(即控件仍然可见)?此外,“CreditCardButton”是否与“同意”按钮位于同一个 UpdatePanel 中?
-
由于我不理解编译错误。它们位于不同的面板中 - CCButton 是一整套链接到同意按钮所在的主页的控件。