我有以下代码:
public partial class queryTerm : System.Web.UI.UserControl
{
private static readonly List<string> BooleanOperators = new List<string> { ".", "AND", "AND NOT", "OR", "OR NOT" };
protected void BuildBoolPanel()
{
var parensOpen = _labelBoolean.Text;
foreach (var @operator in BooleanOperators)
{
if (parensOpen == @operator)
{
continue;
}
var linkButton = new LinkButton();
linkButton.Text = @operator;
linkButton.CommandArgument = @operator;
linkButton.CommandName = "parensOpen";
linkButton.Command += new CommandEventHandler(linkButton_Command);
_popupMenuParensOpen.Controls.Add(linkButton);
var literalLineBreak = new Literal();
literalLineBreak.Text = "<BR/>";
_popupMenuParensOpen.Controls.Add(literalLineBreak);
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
BuildBoolPanel();
}
void linkButton_Command(object sender, CommandEventArgs e)
{
_labelBoolean.Text = (string)e.CommandArgument;
BuildBoolPanel();
}
}
我有一个面板(它是_popupmenuparensopen),每当光标在我的用户控件中的特定标签上找到自己时,它就会与hoverextender一起显示。
此面板包含所有布尔运算符和“.”,表示未设置。
我通过编程在面板中添加布尔运算符作为标签,并且只添加那些与当前设置不匹配的运算符。例如,如果我的标签设置为“和”,当我将鼠标悬停在它上面时,我将显示除“和”之外的所有内容。
问题是即使我指示他们不要调用linkbutton_命令。
更奇怪的是,如果我去掉“如果”!this.ispostback)在页面加载中,它将调用它。
我的控件位于更新面板内。