2017-10-15 3 views
0

수신 된 주문과 뛰어난 주문을 보여주는 주문 시스템이 있습니다. 주문이 접수되고 확인란을 선택한 경우 주문이 접수되면 데이터베이스에 날짜를 추가하고 싶습니다. 분명히 확인 된 행에 날짜 만 추가하려고합니다. 미리 감사드립니다.gridview에 체크 박스가 선택된 경우 날짜를 데이터베이스에 추가합니다.

관련 HTML은 다음과 같이 나는 checkbox_CheckedChanged 이벤트가 있음을 알고

Protected Sub btnUpdateReceived_Click(sender As Object, e As EventArgs) Handles btnUpdateReceived.Click 

    con.Open() 
    For Each row As GridViewRow In gvOpenOrders.Rows 
     Dim purchaseOrderID As Integer = Convert.ToInt32(gvOpenOrders.DataKeys(row.RowIndex).Values(0)) 
     Dim isReceived As Boolean = TryCast(row.FindControl("chkRcvd"), CheckBox).Checked 

     cmd.CommandText = "usp_UpdatePurchaseOrder" 
     cmd.CommandType = CommandType.StoredProcedure 
     cmd.Parameters.Clear() 
     cmd.Parameters.AddWithValue("@OrderID", purchaseOrderID) 
     cmd.Parameters.AddWithValue("@IsReceived", isReceived) 
     cmd.ExecuteNonQuery() 
    Next 
    con.Close() 
    Response.Redirect(Request.Url.AbsoluteUri) 

End Sub 

을하지만 I :

      <asp:GridView ID="gvOpenOrders" runat="server" AutoGenerateColumns="False" Width="100%" CellPadding="4" ForeColor="#333333" 
           GridLines="None" DataKeyNames="PurchaseOrderID" AllowPaging="True" AllowSorting="True" 
           OnSorting="gvOpenOrders_Sorting" EnableViewState="true" OnPageIndexChanging="OnPageIndexChanging" PageSize="15" ViewStateMode="Enabled"> 
           <AlternatingRowStyle BackColor="White" /> 
           <Columns> 
            <asp:TemplateField HeaderText="Is Received" SortExpression="IsReceived"> 
             <ItemTemplate> 
              <asp:CheckBox ID="chkRcvd" runat="server" AutoPostBack="true" Checked='<%# Bind("IsReceived") %>' Enabled='<%# Eval("IsReceived") = False %>' OnCheckedChanged="chkRcvd_CheckedChanged" /> 
             </ItemTemplate> 
            </asp:TemplateField> 

내가 현재 업데이트 수신 버튼을 클릭 할 때 데이터베이스를 업데이트하고, 아래 참조 그것을 사용하는 방법을 잘 모르겠습니다.

답변

0

당신은 CheckedChanged 이벤트에이 코드를 추가 할 수 있습니다

CheckBox chkSelect = (CheckBox)sender; 

if (chkSelect.Checked) 
{ 
    string date = DateTime.Today.ToString("dd-MM-yyyy"); 
} 

희망 VB의 코드로 변환 할 수있다.

0
protected void chkRcvd_CheckedChanged(object sender, EventArgs e) 
{ 
    CheckBox chkSelect = (CheckBox)sender; 

    if (chkSelect.Checked) 
    { 
     string date = DateTime.Today.ToString("dd-MM-yyyy"); 
    } 
} 
+0

이 나에게 확인란이 선택 된 날짜를주는 데 도움이됩니다,하지만 난 체크 된 체크 박스 ID를 얻으려고 노력 여전히 끝에 약간입니다. 위의 "For Each"섹션은 내가 선택한 행만 필요로하는 각 행을 통해 실행됩니다. 생각? – mooreev

0

나는 하나의 수정 만이 해결책을 찾을 수 있다고 생각합니다. 이 시도 :

string strDate=stirng.Empty; 
foreach (GridViewRow rw in grid1.Rows) 
     { 
      CheckBox chkBx = (CheckBox)rw.FindControl("Check"); 
      if (chkBx != null && chkBx.Checked) 
      {    
       strDate = ((Label)rw.FindControl("lblDate")).Text; 
     } 
     }