【发布时间】:2014-10-02 01:16:36
【问题描述】:
我在更新文本框时遇到下拉列表问题,这两个文本框都保存在列表视图中,更新面板中又位于项目模板中。
更新
我在同一个项目的不同网页中使用相同的代码而不使用上述容器,但是在将其与 lisview 和其他容器链接时遇到了问题。
我不确定问题出在哪里,除非有回调到服务器,否则 onClick 不会触发,无论下拉菜单是否包含在上述容器中。
任何帮助将不胜感激,在此先感谢。
使用 asp(第 1 次)和 VB 代码(第 2 次)。
<InsertItemTemplate>
<asp:panel runat="server" ChildrenAsTriggers="true" UpdateMode="Always">
<asp:ListView ID="ListView1" runat="server" InsertItemPosition="FirstItem" IAllowPaging="True" EnableViewState="true">
<tr>
<td>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Details")%>' TextMode="MultiLine" />
</td>
<td>
<asp:DropDownList ID="DLL" runat="server" OnSelectedIndexChanged="DLL_SelectedIndexChanged" AutoPostBack="true "EnableViewState="true">
<asp:ListItem>Select</asp:ListItem>
<asp:ListItem Value="1">Yes</asp:ListItem>
<asp:ListItem Value="2">No</asp:ListItem>
<asp:ListItem Value="3">Maybe</asp:ListItem>
<asp:ListItem Value="4">I dont know</asp:ListItem>
<asp:ListItem Value="5">Can you repeat</asp:ListItem>
<asp:ListItem Value="6">the question</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
</asp:panel>
</InsertItemTemplate>
后面的代码
Protected Sub DDL_SelectedIndexChanged(sender As Object, e As EventArgs)
Dim ddl As DropDownList = DirectCast(sender, DropDownList)
Dim listviewItemThing = DirectCast(sender.parent.NamingContainer, ListViewItem)
Dim tb As TextBox = DirectCast(ddl.NamingContainer.FindControl("TextBox2"), TextBox)
If ddl.SelectedValue = 1 Then
tb.Text = My.Computer.FileSystem.ReadAllText("E:\Users\han\Documents\Templates\1.txt")
ElseIf ddl.SelectedValue = 2 Then
tb.Text = My.Computer.FileSystem.ReadAllText("E:\Users\han\Documents\Templates\2.txt")
ElseIf ddl.SelectedValue = 3 Then
tb.Text = My.Computer.FileSystem.ReadAllText("E:\Users\han\Documents\Templates\3.txt")
ElseIf ddl.SelectedValue = 4 Then
tb.Text = My.Computer.FileSystem.ReadAllText("E:\Users\han\Documents\Templates\4.txt")
ElseIf ddl.SelectedValue = 5 Then
tb.Text = My.Computer.FileSystem.ReadAllText("E:\Users\han\Documents\Templates\5.txt")
ElseIf ddl.SelectedValue = 6 Then
tb.Text = My.Computer.FileSystem.ReadAllText("E:\Users\han\Documents\Templates\6.txt")
Else
tb.Text = ""
End If
End Sub
更新 2
根据要求,请参阅附加的 VS2013 调试中浏览器控制台错误的屏幕截图
并扩展错误。
更新 3
添加了 JQuery 以尝试强制 PostBack。
function JsFunction() {
__doPostBack('DLL_SelectedIndexChanged', '');
}
到 JQ 的 ASP 链接
<asp:DropDownList ID="DDL" runat="server" Width="120px" OnSelectedIndexChanged="DDL_SelectedIndexChanged" AutoPostBack="true" CausesValidation="false" EnableViewState="true" onchange="javascript:JsFunction()">
【问题讨论】:
-
你的
DDL_SelectedIndexChanged中的ctl是什么? -
你还能修复标记吗?为什么你认为没有开火?您是否尝试将断点设置为
DDL_SelectedIndexChanged? -
你是如何确定事件没有触发的?
-
在 SelectedIndexChanged 上设置的断点,当 DDL 上的项目被选择时,它们不会激活,只有在有回发到服务器时才会激活。
-
你有什么错误吗?可能在浏览器控制台中?
标签: asp.net ajax vb.net listview selectedindexchanged