所以我正在编写一页一步一步的预订流程 我已对其进行编码,以便在单击按钮时内容将切换下来。
这似乎干扰了其中一个按钮点击事件后面的VB.NET IF语句,因为现在IF语句不起作用。
如果没有选择某些内容,它应该显示div。
有人可以指导我做什么吗?
HTML:
<section>
<div class="ChooseDoctor">
<div class="col-md-50 col-sm-50" style="text-align:center;">
<h2>Choose your doctor</h2>
<div class="alert alert-warning" id="warninginfo" runat="server">
<strong>Warning!</strong> You have not selected your chosen doctor!
</div>
<br />
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:myConnectionString %>" SelectCommand="SELECT [FirstName], [Surname], [DoctorNumber], [ContactNumber] FROM [DoctorDetails]">
</asp:SqlDataSource>
<div class="col-md-50 col-sm-50" style="text-align:center;">
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" CellPadding="2" DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None" DataKeyNames="DoctorNumber" Height="411px" Width="824px" ShowHeader="False" HorizontalAlign="Center">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:BoundField DataField="DoctorNumber" HeaderText="DoctorNumber" InsertVisible="False" ReadOnly="True" SortExpression="DoctorNumber" />
<asp:BoundField DataField="FirstName" HeaderText="First Name" SortExpression="Forename" />
<asp:BoundField DataField="Surname" HeaderText="Surname" SortExpression="Surname" />
<asp:CommandField ButtonType="Image" ShowSelectButton="True" SelectImageUrl="~/Images/buttonforbooking.png" />
</Columns>
</asp:GridView>
<br />
<asp:Button ID="btnNextDate" runat="server" Text="Next Step" OnClientClick="return false;" BackColor="#02bdd5" ForeColor="#ffffff" CssClass="btn btn-default btn-send" Height="55px" Width="211px" Align="Center"/>
<br />
</div>
</div>
</div>
代码隐藏文件:
warninginfo.Visible = False
btnNextDate_Click(sender As Object, e As EventArgs) Handles btnNextDate.Click
If GridView1.SelectedValue = Nothing Then
warninginfo.Visible = True
End If
JS文件:
$(document).ready(function()
{
$("[id$=btnNextDate]").click(function () {
$("[id$=ChooseDate]").slideToggle('slow');
});
答案 0 :(得分:0)
您必须将代码更改为:
$(document).ready(function()
{
$('#' + '<%= btnNextDate.ClientID %>').click(function (e) {
e.preventDefault();
$('#' + '<%= ChooseDate.ClientID %>').slideToggle('slow');
});
});
使用客户端ID,而不是服务器ID。刚才我试过这个并成功地工作了。
答案 1 :(得分:0)
就个人而言,我会找到相对于单击按钮所需的元素,如果它们是兄弟节点,这是非常简单的。与在整个DOM中查找节点相比,DOM遍历的效率令人惊讶。
我也会使用类,而不是id,这在某种程度上很麻烦。
第一:
nextDate
添加到按钮的班级列表chooseDate
添加到ChooseDate div的班级列表中。现在编写点击处理程序,如下所示:
$(document).ready(function() {
$("button.nextDate").on('click', function(e) {
e.preventDefault(); // Maybe required, maybe not?
$(this).siblings(".chooseDate").slideToggle('slow'); // Find the required element relative to the clicked button. DOM traversal is very efficient.
});
});
除非因其他原因需要ID,否则它们会消失。
不知道这是否会阻止您对VB.NET IF
语句的干扰,但是无论是否使用e.preventDefault();
语句都值得尝试。