Как отобразить элемент управления календарем в столбце вид сетки в режиме редактирования в ASP.NET с#
У меня есть 2 элемента управления календарем и 1 элемент управления Gridview.когда пользователь выбирает дату из обоих элементов управления, я отображаю данные в gridview между выбранными датами месяцев. Для этого я написал select query. я показываю 3 colums FileName, UploadDate и ProcessedDate на кнопке поиска .
Теперь, что я должен сделать, я хочу, чтобы добавить элемент управления календарь в столбце ProcessedDate для редактирования
GridView1_RowEditingпожары событий. я могу поместить ручную дату в этот файл и сохранить ее в базе данных, но я хочу отобразить там элемент управления календарем.
это мой код страницы aspx
<asp:GridView ID="GridView1" runat="server" DataKeyNames="FileName" CellPadding="6" GridLines="None" CssClass="inline" AutoGenerateEditButton="True" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit" BackColor="White" BorderColor="White" BorderStyle="Ridge" BorderWidth="2px" CellSpacing="1" OnRowDataBound="GridView1_RowDataBound"> <FooterStyle BackColor="#C6C3C6" ForeColor="Black" /> <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" /> <PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Right" /> <RowStyle BackColor="#DEDFDE" ForeColor="Black" /> <SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" /> <SortedAscendingCellStyle BackColor="#F1F1F1" /> <SortedAscendingHeaderStyle BackColor="#594B9C" /> <SortedDescendingCellStyle BackColor="#CAC9C9" /> <SortedDescendingHeaderStyle BackColor="#33276A" /> </asp:GridView>
Код C#
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { GridViewRow row = GridView1.Rows[e.RowIndex]; //Calendar textName = (Calendar)row.Cells[0].Controls[0]; //System.Web.UI.WebControls.Calendar Calendar1 = (System.Web.UI.WebControls.Calendar)row.Cells[0].Controls[0]; //TextBox ProcessedDate = (TextBox)row.FindControl("txtProductName"); //int PackageDetailsID = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Values[0]); string FileName = Convert.ToString(GridView1.DataKeys[e.RowIndex].Values[0]); string name = (row.Cells[2].Controls[0] as TextBox).Text; //string country = (row.Cells[3].Controls[0] as TextBox).Text; string constr = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString; using (SqlConnection con = new SqlConnection(constr)) { using (SqlCommand cmd = new SqlCommand("UPDATE PackageDetails SET ProcessedDate = @ProcessedDate WHERE FileName = @FileName")) //using (SqlCommand cmd = new SqlCommand("UPDATE PackageDetails SET ProcessedDate = '" + Calendar1 + "' WHERE FileName ='" + FileName + "'")) { cmd.Parameters.AddWithValue("@FileName", FileName); cmd.Parameters.AddWithValue("@ProcessedDate", name); cmd.Connection = con; con.Open(); cmd.ExecuteNonQuery(); con.Close(); } } GridView1.EditIndex = -1; //this.BindGrid(); this.BindDataGrid(); } public void BindDataGrid() { string constr = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString; using (SqlConnection con = new SqlConnection(constr)) { using (SqlCommand cmd = new SqlCommand("SELECT DISTINCT FileName, UploadDate, ProcessedDate FROM PackageDetails WHERE CONVERT(DATE, UploadDate) BETWEEN @From AND @To", con)) { using (SqlDataAdapter da = new SqlDataAdapter(cmd)) { string date = ""; date = CalendarFrom.SelectedDate.ToString("MM-dd-yyyy"); string date2 = ""; date2 = CalendarTo.SelectedDate.ToString("MM-dd-yyyy"); cmd.Parameters.Add("@From", SqlDbType.Date).Value = date; cmd.Parameters.Add("@To", SqlDbType.Date).Value = date2; DataSet ds = new DataSet(); da.Fill(ds); GridView1.DataSource = ds; GridView1.DataBind(); } } } }
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; //System.Web.UI.WebControls.Calendar Calendar1 = (System.Web.UI.WebControls.Calendar)row.Cells[0].Controls[0]; //this.BindGrid(); this.BindDataGrid(); }
Что я уже пробовал:
я пробовал использовать javascript, но не получил ожидаемого результата.
Karthik_Mahalingam
используйте jQuery date picker, который упрощает работу.
Member 12409011
я новичок в интернете и не знаю, как использовать jquery для достижения этой цели.
Karthik_Mahalingam
Всегда использовать Ответить кнопка, чтобы отправить комментарии / запрос пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.