Я написал свой код под кнопкой следующим образом
string actkey = string.Empty;
foreach (GridViewRow row in GridView1.Rows)
{
//Label lbInvoice = (Label)row.FindControl("lblInvoice");
string strInvoice = GridView1.DataKeys[row.RowIndex].Values["lblInvoice"].ToString();
objinvoice.Invoice = strInvoice;
RadioButton rdn = (RadioButton)row.FindControl("rdnRenew");
if (rdn.Checked)
{
actkey = oCustomerDetails.CreateRandom(20);
objinvoice.activationcode = actkey;
objinvoice.editInvoice(actkey, strInvoice);
}
}
Но я получаю ошибку в этом
string strInvoice = GridView1.DataKeys[row.RowIndex].Values["lblInvoice"].ToString();
Есть ли что-то не так в том, что я записал
Я объявил свой шаблон объекта следующим образом
<ItemTemplate>
<asp:Label ID="lblInvoice" runat="server" Text='<%# Eval("invoceNo") %>'></asp:Label>
</ItemTemplate>
Это рабочий
string strInvoice = GridView1.DataKeys[row.RowIndex].Values["invoceNo"].ToString();
, а также для сетки мы должны назначить значения Datakey ...
<asp:Label ID="lblInvoice" runat="server" Text=<%# Eval("invoceNo") %>
Вы получаете эту ошибку, потому что, возможно, эта строка не устанавливает никакого значения для метки
.
string strInvoice = GridView1.DataKeys[row.RowIndex].Values["lblInvoice"].ToString();
если значение равно NULL, то remove (.ToString ())
может работать
Получил ответ, забыл указать имена данных
в GridView
.