2010-10-14 2 views
0

в GridView (ASP.NET/C#), у меня есть несколько полей шаблонов - 2 вопроса, относящиеся к вопросу: «checkbox1» и «количество». Флажок запускается как немаркированный для каждой строки, и количество начинается как отключенное для каждой строки. Но когда пользователь устанавливает флажок в одной из строк, мне нужен фрагмент JavaScript или что-то, чтобы проверить, установлен ли флажок соответствующих строк, и если да, включите текстовое поле количества строк.Включение столбцов GridView, когда установлен флажок GridView

Как это сделать?

+0

Вы хотите сделать это, не делая обратной передачи? – EJC

+0

В идеале, да. Отправка назад каждый раз, когда поле выбрано, будет немного неэлегантным. – Chris

+0

Согласен. Отправка назад была бы самым простым способом, но не самым быстрым (или самым элегантным) – EJC

ответ

1

Убедитесь, что вы указали номер с отключенным. Я предполагаю, что это TextBox:

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:CheckBox ID="checkbox1" runat="server" /> 
    </ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField> 
    <ItemTemplate> 
     <asp:TextBox ID="quantity" runat="server" Enabled="false" /> 
    </ItemTemplate> 
</asp:TemplateField> 

Добавить этот кусок JavaScript на странице:

<script type="text/javascript"> 

    function ChangeQuantityEnable(id, enable) { 
     document.getElementById(id).disabled = !enable; 
    } 

</script> 

Тогда в обработчик событий RowDataBound для вашего GridView, добавьте

if (e.Row.RowType == DataControlRowType.DataRow) 
{ 
    CheckBox chk = (CheckBox)e.Row.FindControl("checkbox1"); 
    TextBox txt = (TextBox)e.Row.FindControl("quantity"); 

    chk.Attributes["onclick"] = string.Format("ChangeQuantityEnable('{0}', this.checked);", txt.ClientID); 
} 
+0

Работал абсолютно идеально. Огромное спасибо! – Chris

Смежные вопросы