我的问题是我在 FooterTemplate 和 HeaderTemplate 中有一个按钮(在数据列表中),我需要根据布尔值禁用/启用它们。我知道使用 ItemDataBound,但是页面其余部分的设置方式不起作用,因为它绑定的唯一时间是初始页面加载。
我曾经使用 javascript 进行这项工作,但发生了一些事情,我的 javascript 不再起作用。所以我希望能够通过代码隐藏来做到这一点。那么无论如何要使用 foreach 循环来访问控件吗?
在我试图这样做的事件中,我有以下循环:
foreach (DataListItem dli in list.Items)
{
int qty = Convert.ToInt32(((TextBox)dli.FindControl("qtyTextBox")).Text);
int productID = Convert.ToInt32(((Literal)dli.FindControl("prodId")).Text);
isQtyValid = COMMONACES.GetValues.getTotalQty(sessionID, productID, qty);
lblError.Visible = !isQtyValid;
lblError.Text = isQtyValid ? string.Empty : "The total quantity for one or more items exceeds the maximum. The total quantity includes items already in the cart.";
Page.ClientScript.RegisterStartupScript(this.GetType(), "function", "SetButtonStatus()", true); //used to access javascript
}
Javascript:
function SetButtonStatus() {
var bb = document.getElementsByClassName('ButtonSubmit');
for (var i = 0; i < bb.length; i++) {
bb[i].disabled = <%=(!isQtyValid).ToString().ToLower()%>;
}
}
如果这是有用的信息,我正在尝试在文本更改事件以及 selectedindexchanged 事件中执行此操作。如果需要任何其他信息,我会尽力提供。
感谢您提供的任何帮助。