0
我不是很有經驗,也許我問一個愚蠢的問題。我試圖刪除這個GridView中的一行。爲此,我調用方法deleteDettagliDocument(id_row)
從我的數據庫執行DELETE
。此方法採用整數作爲參數,但控件是一個標籤,我無法正確轉換它。這是我的代碼。標籤轉換findcontrol
protected void grdContact_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
bool result;
DboDocument objdbo = new DboDocument();
InvoiceDetails ID = new InvoiceDetails();
List<InvoiceDetails> app = (List<InvoiceDetails>)Session["lst_details"];
int id_row = (Label)grdContact.Rows[e.RowIndex].FindControl("lblId_Row"); // Error!
app.RemoveAt(e.RowIndex);
Session["lst_details"] = app;
FillGrid();
CalculateTotal();
result = objdbo.deleteDocumentDetails(id_row);
}
您不能轉換'Label'成'int'。您可能想要將'Label'的文本屬性轉換爲int? –
int'id'是否存儲在標籤上?更常見的方法是將其保存到隱藏字段中。但是你得到一個錯誤的原因是因爲你試圖給'int'分配一個'Label'類型。你需要得到它的值,如:'Convert.ToInt32((Label)grdContact.Rows [e.RowIndex] .FindControl(「lblId_Row」)。Text);' – DGibbs