如何解决当没有从下拉列表中选择任何值时,隐藏/显示表单视图
| 我的页面中有两个下拉列表,一个detailsview和一个formview控件。第一个下拉列表具有书籍类别的列表,而第二个下拉列表具有基于第一个下拉列表的所选值的书籍列表,最后是detailsview,其显示了第二个下拉列表的详细信息。另一方面,formview没有任何控件,我只是使用它来从detailsview获取值,以便基于第二个选定的下拉列表插入记录。因此,如果第二个dropdownlist为空,我想隐藏formview。 有点不清楚,但是为了简短起见,如果第二个下拉列表中没有选择任何值,我只想隐藏formview(并显示是否存在)。 我已附上示例代码。我希望你能理解。 提前致谢<p>
Book Reservation</p>
<p>
<asp:DropDownList ID=\"DropDownList1\" runat=\"server\" AppendDataBoundItems=\"True\"
AutoPostBack=\"True\" DataSourceID=\"categoryDataSource\" DataTextField=\"name\"
DataValueField=\"categoryid\" >
<asp:ListItem Selected=\"True\" Value=\"\">-- Choose a category --</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID=\"categoryDataSource\" runat=\"server\"
ConnectionString=\"<%$ ConnectionStrings:LibrarySystemConnectionString %>\"
SelectCommand=\"SELECT [categoryid],[name] FROM [TblCategory]\" >
</asp:SqlDataSource>
</p>
<p>
<asp:DropDownList ID=\"DropDownList2\" runat=\"server\"
AutoPostBack=\"True\" DataSourceID=\"booktitleDataSource\"
DataTextField=\"booktitle\" DataValueField=\"bookid\" OnDataBound=\"DetailsView1_DataBound\" >
<asp:ListItem Selected=\"True\" Value=\"-1\">-- Choose a book --</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID=\"booktitleDataSource\" runat=\"server\"
ConnectionString=\"<%$ ConnectionStrings:LibrarySystemConnectionString %>\"
SelectCommand=\"SELECT [bookid],[booktitle],[categoryid] FROM [TblBooks] WHERE ([categoryid] = @categoryid)\">
<SelectParameters>
<asp:ControlParameter ControlID=\"DropDownList1\" Name=\"categoryid\"
PropertyName=\"SelectedValue\" Type=\"Int32\" />
</SelectParameters>
</asp:SqlDataSource>
</p>
<p>
<asp:DetailsView ID=\"DetailsView1\" runat=\"server\" AutoGenerateRows=\"False\"
DataKeyNames=\"bookid\" DataSourceID=\"bookdetailsDataSource\" >
<HeaderTemplate>
<b>BOOK DETAILS</b>
</HeaderTemplate>
<FooterTemplate>
<b>RESERVED BY</b>
<asp:GridView ID=\"GridView1\" runat=\"server\" AllowPaging=\"True\" AllowSorting=\"True\"
AutoGenerateColumns=\"False\" DataKeyNames=\"reservationid\"
DataSourceID=\"reserveDataSource\">
<Columns>
<asp:BoundField DataField=\"EmployeeID\" HeaderText=\"Employee PIN\"
SortExpression=\"EmployeeID\" />
<asp:BoundField DataField=\"reservedate\" HeaderText=\"Reserve date\"
SortExpression=\"reservedate\" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID=\"resereDataSource\" runat=\"server\" ConnectionString=\"<%$ ConnectionStrings:LibrarySystemConnectionString %>\"
SelectCommand=\"SELECT dbo.BookReservation.reservationid,dbo.BookReservation.bookid,dbo.BookReservation.EmployeeID,dbo.BookReservation.reservedate,dbo.BookReservation.isapproved,dbo.BookReservation.reschedule,dbo.BookReservation.isdeleted,dbo.TblBooks.booktitle FROM dbo.BookReservation INNER JOIN dbo.TblBooks ON dbo.BookReservation.bookid = dbo.TblBooks.bookid WHERE (dbo.BookReservation.isdeleted IS NULL) OR (dbo.BookReservation.deleted = 0)\">
</asp:SqlDataSource>
</FooterTemplate>
<Fields>
<asp:BoundField DataField=\"bookid\" HeaderText=\"ISBN\" ReadOnly=\"True\"
SortExpression=\"bookid\" />
<asp:BoundField DataField=\"booktitle\" HeaderText=\"Title\"
SortExpression=\"booktitle\" />
<asp:BoundField DataField=\"lastname\" HeaderText=\"Author\"
SortExpression=\"lastname\" />
<asp:BoundField DataField=\"firstname\" HeaderText=\"\"
SortExpression=\"firstname\" />
<asp:BoundField DataField=\"description\" HeaderText=\"Description\"
SortExpression=\"description\" />
<asp:BoundField DataField=\"name\" HeaderText=\"Category\"
SortExpression=\"name\" />
<asp:BoundField DataField=\"quantity\" HeaderText=\"Quantity\"
SortExpression=\"quantity\" />
<asp:BoundField DataField=\"dateadded\" HeaderText=\"Date added\"
SortExpression=\"dateadded\" />
<asp:CheckBoxField DataField=\"isdeleted\" HeaderText=\"Deleted\"
SortExpression=\"isdeleted\" />
</Fields>
</asp:DetailsView>
<asp:SqlDataSource ID=\"bookdetailsDataSource\" runat=\"server\"
ConnectionString=\"<%$ ConnectionStrings:LibrarySystemConnectionString %>\"
SelectCommand=\"SELECT dbo.TblBooks.bookid,dbo.TblBooks.booktitle,dbo.TblBooks.lastname,dbo.TblBooks.firstname,dbo.TblBooks.description,dbo.TblBooks.categoryid,dbo.TblBooks.dateadded,dbo.TblBooks.statusid,dbo.TblBooks.quantity,dbo.TblBooks.isdeleted,dbo.BookStatus.statusname,dbo.TblCategory.name,dbo.LendTable.EmployeeID,dbo.LendTable.dateborrowed,dbo.LendTable.expdateofreturn,dbo.LendTable.datereturned FROM dbo.TblBooks INNER JOIN dbo.TblCategory ON dbo.TblBooks.categoryid = dbo.TblCategory.categoryid INNER JOIN dbo.BookStatus ON dbo.TblBooks.statusid = dbo.BookStatus.statusid INNER JOIN dbo.LendTable ON dbo.TblBooks.bookid = dbo.LendTable.bookid WHERE (dbo.TblBooks.bookid = @bookid) \">
<SelectParameters>
<asp:ControlParameter ControlID=\"DropDownList2\" Name=\"bookid\"
PropertyName=\"SelectedValue\" Type=\"Int64\" />
</SelectParameters>
</asp:SqlDataSource>
</p>
<p>
<asp:FormView ID=\"FormView1\" runat=\"server\" DataKeyNames=\"reservationid\"
DataSourceID=\"reserveDataSource\" DefaultMode=\"Insert\"
OnDataBound=\"FormView1_DataBound\" >
<EditItemTemplate>
reservationid:
<asp:Label ID=\"reservationidLabel1\" runat=\"server\"
Text=\'<%# Eval(\"reservationid\") %>\' />
<br />
bookid:
<asp:TextBox ID=\"bookidTextBox\" runat=\"server\" Text=\'<%# Bind(\"bookid\") %>\' />
<br />
EmployeeID:
<asp:TextBox ID=\"EmployeeIDTextBox\" runat=\"server\"
Text=\'<%# Bind(\"EmployeeID\") %>\' />
<br />
reservedate:
<asp:TextBox ID=\"reservedateTextBox\" runat=\"server\"
Text=\'<%# Bind(\"reservedate\") %>\' />
<br />
<asp:LinkButton ID=\"UpdateButton\" runat=\"server\" CausesValidation=\"True\"
CommandName=\"Update\" Text=\"Update\" />
<asp:LinkButton ID=\"UpdateCancelButton\" runat=\"server\"
CausesValidation=\"False\" CommandName=\"Cancel\" Text=\"Cancel\" />
</EditItemTemplate>
<InsertItemTemplate>
Reserve date:
<asp:TextBox ID=\"reservedateTextBox\" runat=\"server\"
Text=\'<%# Bind(\"reservedate\") %>\' />
<a href=\"#\" onclick=\"cdp1.showCalendar(this,\'ctl00$ContentPlaceHolder1$FormView1$reservedateTextBox\'); return false;\">Date Picker</a>
<asp:RequiredFieldValidator ID=\"RequiredFieldValidator1\" runat=\"server\" ControlToValidate=\"reservedateTextBox\" ErrorMessage=\"* \" ValidationGroup=\"reservebook\">
</asp:RequiredFieldValidator>
<br />
<asp:Button ID=\"InsertButton\" runat=\"server\" CausesValidation=\"True\"
CommandName=\"Insert\" Text=\"Insert\" />
<asp:Button ID=\"InsertCancelButton\" runat=\"server\"
CausesValidation=\"False\" CommandName=\"Cancel\" Text=\"Cancel\" />
<%--ISBN:--%>
<asp:TextBox ID=\"bookidTextBox\" runat=\"server\" Visible=\"false\"
Text=\'<%# Bind(\"bookid\") %>\' />
<br />
<%--Employee PIN:--%>
<asp:TextBox ID=\"EmployeeIDTextBox\" runat=\"server\" Visible=\"false\"
Text=\'<%# Bind(\"EmployeeID\") %>\' />
<br />
</InsertItemTemplate>
解决方法
1)首先从标记设置FromView
Visible=\"False\"
。
2)将“ 2”分配给DropDownList2并设置其“ 3”
3)在后面的代码中添加以下内容:
protected void DropDownList2_SelectedIndexChanged(object sender,EventArgs e)
{
if(!DropDownList2.SelectedValue.Equals(\"-1\"))
FromView1.Visible=true;
else
FromView1.Visible=false;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。