2012-03-09 6 views
1

Я пытаюсь пропустить все флажки и получить их значение, и если они отмечены флажком или нет, и сохранить отмеченную/непроверенную в базу данных на основе значения, которое будет содержать идентификатор записи. Я пытаюсь сделать это через asp.net любые предложения?Флажки Loop Through GridView

Вот код:

  <Columns> 
       <asp:TemplateField HeaderText="Application" ItemStyle-Width="25%"> 
        <ItemTemplate>       
         <%#Eval("App")%> 
        </ItemTemplate>      
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Edit" ItemStyle-Width="25%"> 
        <ItemTemplate> 
         <input name="chkEdit" runat="server" value='<%# Eval("AppID") %>' class="checkbox" type="checkbox" checked='<%# Eval("Edit") %>' /> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Delete" ItemStyle-Width="25%"> 
        <ItemTemplate>       
         <input name="chkDelete" runat="server" value='<%# Eval("AppID") %>' class="checkbox" type="checkbox" checked='<%# Eval("Delete") %>' /> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="View" ItemStyle-Width="25%"> 
        <ItemTemplate>       
         <input name="chkView" runat="server" value='<%# Eval("AppID") %>' class="checkbox" type="checkbox" checked='<%# Eval("View") %>' /> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
+0

@DeviantSeev Я попытался пробегаю по контролю за флажок, но это не работает ... также попытался с помощью Javascript, где я могу получить все галочки, но предпочел бы сделать всю работу в asp.net. Я хочу посмотреть, есть ли способ в asp.net получить все значения и Проверено/Не отмечено, кроме javascript. –

+0

Как только пользователь нажимает кнопку «Сохранить», мне нужно будет пройти все флажки и сохранить их текущее состояние в таблице. –

ответ

2
string[] controls = new string[] {"chkEdit","chkDelete","chkView"}; 

foreach (GridViewRow r in YourGridView.Rows) 
{ 
    foreach(string cnt in controls){ 
    int value = Convert.ToInt32(((System.Web.UI.HtmlControls.HtmlInputCheckBox)r.FindControl(cnt)).Value); 
    bool isChecked = ((System.Web.UI.HtmlControls.HtmlInputCheckBox)r.FindControl(cnt)).Checked; 
    //now you have id and checked/unchecked. use your query to save it to database 
    } 
} 
+0

Большое спасибо за ответ, это было то, что я искал. Есть ли способ получить флажок динамически, кроме жесткого кодирования? Есть ли возможность перебрать Html-флажки и назначить их FindControl? –

+0

Только что отредактирован для вашего требования. – Kaf

+0

Большое спасибо за идею :) –

2

в OnClick случае сделать что-то вроде этого.

foreach(Gridviewrow gvr in Gridview1.Rows) 
{ 
    if(((CheckBox)gvr.findcontrol("CheckBox1")).Checked == true) 
    { 

     //do something 
    } 
} 
+0

Эй, спасибо за ответ. Я уже купил что-то вроде этого, но за флажком есть значение идентификатора базы данных, как мне получить контроль: value = '<% # Eval ("AppID")%>' –

+0

Также есть способ динамического поиска имя контрольного, а не жесткого кодирования? –

+0

Значение тега ввода html может быть получено примерно таким образом. Request.Form ('checkboxID'). могу ли я спросить вас, почему вы используете html-тег, а не asp.net? – AJP