我正在创建一个允许使用ASP.NET编辑数据库表的Web应用程序。
我已经拥有应用程序中的所有功能,一切正常。但是,现在规范已经改变,我需要有多个gridview显示不同的数据库表。所以,我已经实现了jquery和一个下拉菜单,它只显示某些div,具体取决于下拉菜单中选择的值。
这很好,我只根据我选择的值显示我想要的gridview。虽然,在尝试编辑gridview时,gridview消失了;这只发生在实现jquery之后。
当我在下拉菜单中选择其他选项然后选择我想要的选项时,我可以再次显示网格视图。
这是stange因为编辑按钮不应该影响我在下拉菜单中选择的值。
有人可以帮忙吗?
jQuery的:
<script type="text/javascript">
$(document).ready(function () {
$('.group').hide();
$('#no_option_selected').show();
$('#DropDownList1').change(function () {
$('.group').hide();
$('#' + $(this).val()).show();
})
});
</script>
答案 0 :(得分:0)
在.NET / C#中执行所有操作可能更容易,而不是ASP.NET / jQuery混合。将您的下拉列表转换为服务器控件并定义OnSelectedIndexChanged。 (别忘了将Autopostback设置为True)
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
OnSelectedIndexchanged="Gridview_ShowHide">
</asp:DropDownList>
然后在你的代码背后:
public void Gridview_ShowHide(Object o, EventArgs e)
{
gv1.Visible = gv2.Visible = gv3.Visible = gv4.Visible = false;
switch (DropDownList1.SelectedValue)
{
case 'gv1':
gv1.Visible = True;
break;
case 'gv2':
gv2.Visible = True;
break;
case 'gv3':
gv3.Visible = True
break;
case 'gv4':
gv4.Visible = True;
break;
}
}
通过这样做,ASP.NET的ViewState将跟踪哪个gridview可见且不可见,即使在回发后也是如此。