2017-01-26 9 views
0

я построить демонстрационное приложение, в котором я использовал список флажка, чтобы получить хобби и ввести эти значения в базе данных следующим образом:Как принести список Checkbox вставить значения в базе данных назад к списку CheckBox

аспид код для списка флажок:

<asp:CheckBoxList ID="chkboxlsthobbies" runat="server" RepeatDirection="Horizontal"> 
     <asp:ListItem>cricket</asp:ListItem> 
     <asp:ListItem>football</asp:ListItem> 
     <asp:ListItem>pool</asp:ListItem> 
     <asp:ListItem>basketball</asp:ListItem> 
     <asp:ListItem>rugby</asp:ListItem> 
    </asp:CheckBoxList> 
    <asp:Button ID="Button1" runat="server" Text="submit" OnClick="Button1_Click" /> 

И соответствующий C# код, чтобы ввести это значение в базе данных выглядит следующим образом:

protected void Button1_Click(object sender, EventArgs e) 
    { 
     string str = string.Empty; 
     foreach (ListItem item in chkboxlsthobbies.Items) 
     { 
      if (item.Selected) 
      { 
       str += string.Format("{0}, ", item.Text); 
      } 
     } 

     SqlCommand cmd = new SqlCommand("insert into [CheckboxTable] values('" + str + "')", con); 
     con.Open(); 
     cmd.ExecuteNonQuery(); 
     con.Close(); 
     bindgrid(); 
    } 

Теперь я использую Gridview связать т данные таблицы шляпы и отобразить ее, и в этом случае у меня есть событие onRowEditing и onRowDeleting.

Gridview код выглядит следующим образом:

 <Columns> 
      <asp:TemplateField> 
       <ItemTemplate> 
        <asp:Button ID="gvtxtedit" runat="server" CommandName="Edit" Text="Edit" /> 
       <asp:Button ID="gvtxtdelete" runat="server" CommandName="Delete" Text="Delete" /> 
       </ItemTemplate> 
      </asp:TemplateField> 

      <asp:TemplateField HeaderText="Hobbies"> 
      <ItemTemplate> 
       <asp:Label ID="gvlblfirstname" runat="server" Text='<%#Eval("Hobbies") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 

И Gridview метод связывания выглядит следующим образом:

protected void bindgrid() 
    { 
     SqlCommand cmd = new SqlCommand("select * from [CheckboxTable]", con); 
     con.Open(); 
     SqlDataAdapter da = new SqlDataAdapter(cmd); 
     DataTable dt = new DataTable(); 
     da.Fill(dt); 
     GridView1.DataSource = dt; 
     GridView1.DataBind(); 
    } 

А теперь я полностью застрял в этой задаче вообще я в состоянии получить значение любого поля в TextBox или в раскрывающемся списке на форме

Пример:

txtfirstname.Text = dt.Rows[0]["firstname"].ToString(); 

внутри onRowEditing случае, чтобы получить значение поля обратно к элементу управления на форме, которую можно сделать для текстового поля и раскрывающегося списка.

Проблема заключается в том, что я не могу понять, как извлечь несколько значений, разделенных символом «,» обратно в список флажков, потому что есть несколько значений, я пробовал это в течение длительного времени.

Последней проблемой является выбор значений в базе данных обратно в список флажков внутри события onRowEditing GridView.

+0

Посмотрите на [этот учебник] (http://www.ezzylearning.com/tutorial/editing-data-using-asp-net-gridview-control). Он охватывает все основы редактирования и обновления GridView. – VDWWD

+0

Спасибо за долю, но это основные операции по обновлению вставки в Gridview, которые довольно легки, я ищу конкретную проблему, упомянутую выше. Спасибо в любом случае. @VDWWD –

+0

В этом уроке редактирование выполняется только внутри Gridview, вы хотите получить значения текущей строки для элементов управления в форме, которую я могу сделать для всех элементов управления, кроме списка флажков, который имеет несколько значений. @VDWWD –

ответ

0

Я написал эту onRowEditing Gridview функции для реализации вышеупомянутого функциональных возможностей т.е.: для извлечения значений списка флажка, сохраненных в базе данных обратно к списку флажка на форме в случае onRowEditing из Gridview

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
    { 
     chkboxlsthobbies.ClearSelection(); 

     //Get the ID 
     int id = Int32.Parse(GridView1.DataKeys[Int32.Parse(e.NewEditIndex.ToString())].Values["ID"].ToString()); 
     SqlCommand cmd = new SqlCommand("select * from CheckboxTable where ID = '"+id+"'", con); 
     con.Open(); 
     SqlDataAdapter da = new SqlDataAdapter(cmd); 
     DataTable dt = new DataTable(); 
     da.Fill(dt); 
     con.Close(); 

     // Get the exact column and save it in a string. 
     string str = dt.Rows[0]["Hobbies"].ToString(); 
     string[] strlist = str.Split(',').Select(t => t.Trim()).ToArray(); //Split into array and trim it. 

     //Finally the main functionality to check the values in checkbox list. 
     foreach (string s in strlist) 
     { 
      foreach (ListItem item in chkboxlsthobbies.Items) 
      { 
       if (item.Value == s) 
       { 
        item.Selected = true; 
        break; 
       } 

      } 


     } 

спасибо.

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

  • Нет связанных вопросов^_^