问题描述
|
我在更新面板中有一个中继器。当我单击“查找书籍”按钮时,根据查询修改了中继器。
我想要的是单击“添加到购物车”按钮时获取DropDown的值。但是我无法获取该值,而是UpdatePanelAnimationExtender再次运行。我在“更新面板”中添加了另一个按钮(TestingButton)。当我也单击该按钮时,UpdatePanelAnimationExtender将运行。
我的问题是如何将更新面板仅限制为“查找图书”按钮?以及如何在更新面板之外检索DropDown的值?我将UpdateMode添加为有条件的,但它也无法正常工作。
aspx页面
<p>Search by Author</p>
<asp:TextBox ID=\"txtAuthor\" runat=\"server\" Text=\"\" AutoComplete=\"off\" /><br />
<p>Search by Publisher</p>
<asp:TextBox ID=\"txtPublisher\" runat=\"server\" Text=\"\" AutoComplete=\"off\" /><br />
<asp:Button ID=\"btnFind\" runat=\"server\" Text=\"Find Books\" OnClick=\"BtnFind_Click\" />
<br />
<p>Search by Price</p>
<asp:RadioButtonList ID=\"RadioButtonList1\" runat=\"server\">
<asp:ListItem Text=\"Below Rs. 1000.00\"></asp:ListItem>
<asp:ListItem Text=\"Between Rs. 1001 to 2500\"></asp:ListItem>
<asp:ListItem Text=\"Above Rs. 2501.00\"></asp:ListItem>
</asp:RadioButtonList>
<br />
<asp:TextBox ID=\"txtTest\" runat=\"server\"></asp:TextBox>
<asp:Button ID=\"Button2\" runat=\"server\" Text=\"Button\"
onclick=\"Button1_Click\" />
<asp:UpdatePanel ID=\"udpBooks\" UpdateMode=\"Conditional\" runat=\"server\">
<ContentTemplate>
<asp:Button ID=\"btnTest\" runat=\"server\" Text=\"Testing Button\" onclick=\"Button1_Click\" />
<asp:Repeater ID=\"repBooks\" runat=\"server\" DataSourceID=\"SqlDataSource1\"
onitemcommand=\"repBooks_ItemCommand\">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<div id=\"bookBorder\">
<table width=\"640px\" height=\"70px\" border=\"0\">
<tr>
<td width=\"51%\" style=\"padding-top: -20px\">
<span class=\"title\">Description:</span> :
<%# DataBinder.Eval(Container.DataItem,\"description\")%>
</td>
<td>
<asp:DropDownList ID=\"DropDownList2\" CssClass=\"dropDown\" runat=\"server\" Width=\"100px\">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
</asp:DropDownList>
<br />
<asp:Button ID=\"btnAddToCart\" CssClass=\"button\" runat=\"server\" Text=\"Add to Cart\"
OnClick=\"BtnAddToCart_Click\" />
</td>
</tr>
</table>
</div>
<br />
</ItemTemplate>
</asp:Repeater>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID=\"btnFind\" EventName=\"Click\" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanelAnimationExtender ID=\"upae1\" runat=\"server\" TargetControlID=\"udpBooks\">
<Animations>
<OnUpdating>
<Parallel Duration=\"0\">
<EnableAction AnimationTarget=\"btnFind\" Enabled=\"false\" />
<FadeOut MinimumOpacity=\".5\" />
</Parallel>
</OnUpdating>
<OnUpdated>
<Parallel Duration=\"0\">
<FadeIn MinimumOpacity=\".8\" />
<EnableAction AnimationTarget=\"btnFind\" Enabled=\"true\" />
</Parallel>
</OnUpdated>
</Animations>
</asp:UpdatePanelAnimationExtender>
背后的代码
public partial class Default3 : System.Web.UI.Page
{
protected void Page_Load(object sender,EventArgs e)
{
}
protected void SqldsOrderDetails_Selecting(object sender,SqlDataSourceSelectingEventArgs e)
{
string author = txtAuthor.Text;
string publisher = txtPublisher.Text;
string select = \"\";
if (author.Equals(\"\") && publisher.Equals(\"\"))
select = \"select bookId,ISBN,Title,publisher,author,price,description from dbo.[book]\";
else if(author.Equals(\"\") && !publisher.Equals(\"\"))
select = \"select bookId,description from dbo.[book] where publisher=@publisher \";
else if(!author.Equals(\"\") && publisher.Equals(\"\"))
select = \"select bookId,description from dbo.[book] where author=@author\";
else if(!author.Equals(\"\") && !publisher.Equals(\"\"))
select = \"select bookId,description from dbo.[book] where author=@author and publisher=@publisher\";
SqlDataSource1.SelectCommand = select;
e.Command.Parameters.Add(new SqlParameter(\"@author\",this.txtAuthor.Text));
e.Command.Parameters.Add(new SqlParameter(\"@publisher\",this.txtPublisher.Text));
}
protected void BtnFind_Click(object sender,EventArgs e)
{
System.Threading.Thread.Sleep(2000);
// this.gvOrderDetails.DataBind();
this.repBooks.DataBind();
}
protected void ul_Click(object sender,EventArgs e)
{
Response.Redirect(\"default.aspx\");
}
protected void BtnAddToCart_Click(object sender,EventArgs e)
{
txtTest.Text = \"sd\";
}
protected void Button1_Click(object sender,EventArgs e)
{
txtTest.Text = \"sd\";
}
protected void repBooks_ItemCommand(object source,RepeaterCommandEventArgs e)
{
DropDownList d = e.Item.FindControl(\"DropDownList2\") as DropDownList;
txtTest.Text = d.SelectedValue;
Button b= e.Item.FindControl(\"btnAddToCart\") as Button;
b.Text = d.SelectedValue;
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)