2017-02-21 3 views
0

disable gridview gridview 안에있는 버튼 클릭으로 행 싶습니다. 그래서 나는 아래 코드를 작성했다.'Obout.Grid.GridTemplate'유형의 객체를 'System.Web.UI.WebControls.GridViewRow'에 입력 할 수 없습니다. 해결하지 않음

protected void btnPayGenInvoice_Click(object sender, EventArgs e) 
{ 
    if (strMode == "M") 
    { 
     Button btn = (Button)sender; 
     GridViewRow row = (GridViewRow)btn.Parent.Parent; 
     row.Enabled = false; 
    } 
} 

하지만

'System.Web.UI.WebControls.GridViewRow'를 입력 유형 'Obout.Grid.GridTemplate'의 개체를 캐스팅 할 수 없습니다로 오류를 얻고있다.

는 친절 라인 GridViewRow row = (GridViewRow)btn.Parent.Parent;

갱신 버튼 클릭 이벤트에 대한 2

코드에

UPDATE

얻기 오류 여기에 어떤 문제가 있는지 알려 주시기 바랍니다.

protected void GetRowDataPay(object sender, CommandEventArgs e) 
{ 
    int rowIndex = int.Parse(e.CommandArgument.ToString()); 

    Hashtable dataItemPay = GridPayInfo.Rows[rowIndex].ToHashtable() as Hashtable; 

    if (ObjPriCon.State != ConnectionState.Open) 
    { 
     ObjPriCon.Open(); 
     OracleCommand cmdMkeyPay = new OracleCommand("select XXCUS.XXACL_LAND_PURC_INV_VIEW_MKEY.nextval from dual", ObjPriCon); 
     string MkeyPay = Convert.ToString(cmdMkeyPay.ExecuteOracleScalar()); 

     OracleCommand cmdORGID = new OracleCommand("select XXCUS.XXACL_LAND_PURC_INV_VIEW_MKEY.nextval from dual", ObjPriCon); 
     string ORG_IDKEY = CF.ExecuteScaler2("select ORGANIZATION_ID,ORGANIZATION_NAME from apps.xxacl_company_mst where ORGANIZATION_NAME = '" + txtCompName.Value + "'"); 

     string strExpQuery = "insert into XXCUS.XXACL_LAND_PURC_INVOICE_VIEW (MKEY,REF_PURCHASE_ID,REF_SR_NO, " + 
         "REF_PURHCASE_TYPE,ORG_ID,PROJECT_ID,TALUKA_ID,VILLAGE_ID,SURVEY_AREA_7_12,DOC_NO,INVOICE_ID,INVOICE_NUM,VENDOR_ID, " + 
         "VENDOR_NAME,INVOICE_AMT,BATCH_ID,BATCH_NAME,EXP_ID,EXP_TYPE,REMARKS,CREATED_BY, " + 
         "CREATION_DATE,LAST_UPDATE_DATE,LAST_UPDATED_BY, EXP_ORG_ID, EXP_ORG_NAME) values (" + MkeyPay + "," + StrMkey + "," + 
         "" + dataItemPay["SR_NO"] + ", '" + dataItemPay["ATTRIBUTE1"] + "'," + ORG_IDKEY + "," + ddlProject.SelectedValue + "," + 
         "" + ddlTaluka.SelectedValue + "," + ddlVillage.SelectedValue + ", '" + txt712.Text + "', '" + txtdocno.Value + "'," + "NULL" + "," + "NULL" + "," + 
         "" + dataItemPay["ORACLE_VENDOR_ID"] + ", '" + dataItemPay["ORACLE_VEND_NAME"] + "', " + dataItemPay["PAID_AMT"] + "," + dataItemPay["BATCH_ID"] + "," + 
         "'" + dataItemPay["BATCH_NAME"] + "', " + dataItemPay["EXP_ID"] + ", '" + dataItemPay["EXP_TYPE"] + "', '" + dataItemPay["REMARKS"] + "', " + 
         "" + Request.QueryString["userid"].ToString() + ", sysdate, sysdate, " + 
         "'" + Request.QueryString["userid"].ToString() + "', " + "NULL" + "," + "NULL" + ")"; 
     OracleCommand cmdQuery = new OracleCommand(strExpQuery, ObjPriCon); 
     cmdQuery.ExecuteNonQuery(); 
     ObjPriCon.Close(); 
     ScriptManager.RegisterStartupScript(this, this.GetType(), "Success", "alert('Payment Invoice inserted into table successfully');", true); 
    } 
} 
+0

같은를 gridviewrow을 얻고 다음을 비활성화 rowIndex에 값을 사용해야합니다. Yiu는 사용하지 않고 코드에 전달하려는 선택된 행을 가져와야합니다. 그 행을 비활성화 할 수 있습니다. –

+0

@YashveerSingh : 예, 버튼을 클릭 한 행을 비활성화하고 싶습니다. – BNN

+0

그래,이 이벤트에서 해당 레코드를 선택할 때 해고 될 선택된 행 이벤트가 있어야합니다.이 작업을 수행 할 수 있습니다. –

답변

1

당신은 유 해제 할 행이

if (GridPayInfo.Rows[rowIndex] != null) 
{ 
    GridPayInfo.Rows[rowIndex].Enabled = false; 
} 
+0

보호 공극 btnPayGenInvoice_Click (객체 송신자있는 EventArgs E) { 경우 (GridPayInfo.Rows [rowIndex에] = NULL!) { (strMode == "M") { 버튼 BTN = (버튼) 보낸 경우; GridViewRow.Rows [rowIndex] .Enabled = false; } } } –

+0

감사합니다. Yashveer,이 제품은 완벽하게 작동합니다 .. !! 삭제 부분을 비활성화하는 방법을 알아야합니다. – BNN

+0

다른 많은 질문이 있으며, 나중에 게시하고 알려 드리겠습니다. 지금 주셔서 감사합니다. 좋은 하루 되세요 – BNN