У меня есть вид сетки, где все строки доступны для редактирования по умолчанию. Для большинства столбцов требуется простое текстовое поле с некоторыми форматирующими валидаторами, которые не являются проблемой.
Однако у меня есть 1 столбец, для которого требуется список вариантов, из которых пользователь может выбирать.
Для этого я использую Ajax Drop Down Extender для привязки к текстовому полю, поэтому при щелчке по текстовому полю он дает им список ... Достаточно просто.
Проблема возникает после того, как пользователь выбирает опцию из выпадающего списка, я не могу получить текстовое поле для обновления его значения с новым выбранным.
Это шаблон элемента из столбца таблицы вида.
<%-- PRIORITY --%>
<asp:TemplateField HeaderText="PRI" SortExpression="PRIORITY">
<ItemTemplate>
<ItemStyle CssClass="ssCellSelected" />
<asp:Panel ID="priorityitems" runat="server" BorderColor="Aqua" BackColor="White" BorderWidth="1">
<asp:ListBox ID="lstPRIORITY" runat="server" SelectedItem='<%# Bind("PRIORITY") %>'>
<asp:ListItem>P1</asp:ListItem>
<asp:ListItem>P2</asp:ListItem>
<asp:ListItem>P3</asp:ListItem>
</asp:ListBox>
</asp:Panel>
<asp:TextBox ID="PRIORITY" runat="server" Width="35px" Text='<%# Eval("PRIORITY") %>' CssClass="ssTextBox"></asp:TextBox>
<cc1:DropDownExtender ID="PRIORITY_DropDownExtender" runat="server"
Enabled="True" DropDownControlID="priorityitems" TargetControlID="PRIORITY">
</cc1:DropDownExtender>
</ItemTemplate>
<ItemStyle CssClass="ssCell" />
</asp:TemplateField>
Вот код для создания события onclick для каждой строки.
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
Если e.Row.RowType = DataControlRowType.DataRow Then
Dim lstPRI As ListBox = DirectCast (e.Row.Cells (3) .FindControl ("lstPRIORITY"), ListBox)
Dim rowIndex As Integer = e.Row.RowIndex
Dim columIndex As Integer = 3
Индекс столбца равен 0
Если lstPRI ничего не значит
lstPRI.Attributes.Add ("onclick", "setText (this.options [this.selectedIndex] .value," & rowIndex.ToString & "," & columIndex.ToString & ");")
End If
Конец, если
End Sub
Мне нужно взять [this.selectedIndex]. Значение и применить его к TextBox с идентификатором PRIORITY
Мне нужно как-то превратить это в динамический аналог
<script type="text/javascript" language="javascript">
function setText(newValue, row, column) {
document.getElementById("ctl00_pagebody_GridView1_ctl02_PRIORITY").value = newValue;
}
</script>