Я пошел дальше и последовал комментарию «Эмаада Али», чтобы помочь вам найти решение.
Шаг 1:
Создайте свою Radgrid.(Я использовал базу данных Northwind в качестве источника данных, потому что он прост и должен легко следовать.) Прежде чем подумать о «перегрузке кода», просто воспользуйтесь мастером Visual Studio для подключения к источнику данных, и он сгенерирует большую часть кода, приведенного ниже.для вас на основе ваших желаемых данных.
<telerik:RadGrid ID="RadGrid1" runat="server" CellSpacing="0"
DataSourceID="SqlDataSource1" GridLines="None">
<MasterTableView AutoGenerateColumns="False" DataKeyNames="ProductID, ProductName"
DataSourceID="SqlDataSource1">
<CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>
<RowIndicatorColumn FilterControlAltText="Filter RowIndicator column">
<HeaderStyle Width="20px"></HeaderStyle>
</RowIndicatorColumn>
<ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
<HeaderStyle Width="20px"></HeaderStyle>
</ExpandCollapseColumn>
<Columns>
<telerik:GridBoundColumn DataField="ProductID" DataType="System.Int32"
FilterControlAltText="Filter ProductID column" HeaderText="ProductID"
ReadOnly="True" SortExpression="ProductID" UniqueName="ProductID">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ProductName"
FilterControlAltText="Filter ProductName column" HeaderText="ProductName"
SortExpression="ProductName" UniqueName="ProductName">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="SupplierID" DataType="System.Int32"
FilterControlAltText="Filter SupplierID column" HeaderText="SupplierID"
SortExpression="SupplierID" UniqueName="SupplierID">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="UnitPrice" DataType="System.Decimal"
FilterControlAltText="Filter UnitPrice column" HeaderText="UnitPrice"
SortExpression="UnitPrice" UniqueName="UnitPrice">
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn HeaderText="Update">
<ItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" AutoPostBack="true" OnCheckedChanged="CheckBox2_CheckedChanged" />
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
<EditFormSettings>
<EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn>
</EditFormSettings>
</MasterTableView>
<FilterMenu EnableImageSprites="False"></FilterMenu>
<HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"></HeaderContextMenu>
</telerik:RadGrid>
Шаг 2: Добавьте следующий столбец после автоматически сгенерированных из вашего источника данных.Если вы посмотрите на код из шага 1, вы увидите, что я уже добавил его.Вы можете скопировать и вставить приведенный ниже код дословно, и он будет работать.
<telerik:GridTemplateColumn HeaderText="Update">
<ItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" AutoPostBack="true" OnCheckedChanged="CheckBox2_CheckedChanged" />
</ItemTemplate>
</telerik:GridTemplateColumn>
При запуске в этот момент сетка будет выглядеть следующим образом:
Шаг 3: В поле DataKeyNames = "" под свойствами вашей сеткинеобходимо добавить имя столбца, для которого вы хотите прочитать данные.Вы сказали, что хотите получить данные из второго столбца, поэтому я тоже использовал второй столбец.В Radgrid мой второй столбец имеет DataField = "ProductName", поэтому мне нужно добавить это в свойство DataKeyNames моей сетки, сделав его DataKeyNames = "ProductName".Это позволит нам прочитать данные в этом столбце в коде c # на шаге 4.
Шаг 4:
Перейти к коду позади и вставить этот код:
protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
CheckBox chk = (CheckBox)sender;
bool status = chk.Checked;
GridDataItem item = (GridDataItem)chk.NamingContainer;
string keyvalue = item.GetDataKeyValue("ProductName").ToString();
string connectionString ="";
if(status)
{
}
}
Как вы видите, в этом коде упоминается «ProductName», поэтому вы должны изменить его на имя вашего столбца.
Шаг 5:
Вставьте код, который потребуется для отправки данных в вашу БД, в условное условие if (status), чтобы оно срабатывало только при первой проверке.
Примечание:
Если вам нужно получить данные из других столбцов, все, что вам нужно сделать, это добавить имена столбцов в поле DataKeyNames = "column1, column2" и затем ссылаться на них через c #:
string value1 = item.GetDataKeyValue("column1").ToString();
string value2 = item.GetDataKeyValue("column2").ToString();
Затем вы можете объединить эти значения в любой код БД, который вы можете использовать.
Я не знаю об Oracle, но мой код SQL, который я добавил в if (Status), выглядит следующим образом:
SqlConnection SqlConnection = new SqlConnection(connectionString);
SqlCommand SqlCommand = new SqlCommand();
SqlCommand.CommandText = "update products set [UnitPrice] = '100' where [ProductName] = '" + keyvalue + "'";
SqlCommand.Connection = SqlConnection;
SqlConnection.Open();
SqlCommand.ExecuteNonQuery();
SqlConnection.Close();
Это базовое обновление, но вы должны получить представление о том, как применить его к своему коду.вставьте его в стол.