2010-12-09 60 views
0

我有点新的网络编程,
我想设计一个搜索页面。 我想创建几个单选按钮,其中每个单选按钮将显示一个div 包含相关的搜索div。 并从那里做查询到数据库(不相关的帖子)在ASP.Net | Ajax |中创建多个隐藏的Div JQuery

我该怎么做? 试图寻找它,并没有得到很好的答案。 我希望页面的变化将在服务器端,而不是在客户端。 p.s. 我一直在与阿贾克斯控制工具包迄今..

感谢您的帮助。

回答

0

你只需要一个UpdatePanel,单选按钮和一个MultiView控件。

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
<ContentTemplate> 
<div> 
<asp:RadioButton ... 
<asp:RadioButton ... 
</div> 
<asp:MultiView ID="mvAll" runat="server" ActiveViewIndex="-1"> 
<asp:View ID="vwFirst" runat="server"> 
</asp:View> 
<asp:View ID="vwSecond" runat="server"> 
</asp:View> 
... 
</asp:MultiView> 
</ContentTemplate> 
</asp:UpdatePanel> 

当选定的单选按钮改变了你刚才设置为活动相关的视图,

mvAll.SetActiveView(ViewIDYouNeed); 
+0

我试着照你说的,但它没有工作,我插入了“mvall.setactive ..”到保护无效RadioButton1_CheckedChanged(对象发件人,EventArgs的) – RonenIL 2010-12-09 16:45:34

+0

你设置无线的AutoPostBack属性按钮为真? – 2010-12-09 16:48:55

0

你可以用面板和一个更新面板做到这一点。

<asp:RadioButton ID="rdo1" AutoPostBack="true" GroupName="radios" runat="server" OnCheckedChanged="ShowDivs" /> 
<asp:RadioButton ID="rdo2" AutoPostBack="true" GroupName="radio2" runat="server" OnCheckedChanged="ShowDivs" /> 

<asp:UpdatePanel runat="server" UpdateMode="Conditional"> 
<ContentTemplate> 
    <asp:Panel ID="pnl1" runat="server" Visible="false"></asp:Panel> 
    <asp:Panel ID="pnl2" runat="server" Visible="false"></asp:Panel> 
</ContentTemplate> 
<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="rdo1" /> 
    <asp:AsyncPostBackTrigger ControlID="rdo2" /> 
</Triggers> 
</asp:UpdatePanel> 

然后,您将在后面的代码中处理ShowDivs方法中设置面板的Visible属性。

或者,你可以使用jQuery/JavaScript来实现这一点。

<input type="radio" onClick="ShowDiv(1)" /> 

function ShowDiv(id) { 
HideDivs(); 
$(id).show('slow'); 
}