我继续前进,并遵循“Emaad Ali的”评论来帮助您寻求解决方案。
第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控件我的第二列有数据字段=“产品名称”,所以我需要将它添加到我的网格的DataKeyNames属性,使得它的DataKeyNames =“产品名称”。这将允许我们在C#代码列在步骤中读取的数据四
步骤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步:
插入那将需要将数据发送到你的数据库,如果(状态)中的代码的条件,因此,只有当你选择了它的第一次火灾。
注:
如果你需要从其他列的数据,所有你需要做的就是添加列名到的DataKeyNames =“列1,列2”字段,然后通过C#中引用它们:
string value1 = item.GetDataKeyValue("column1").ToString();
string value2 = item.GetDataKeyValue("column2").ToString();
然后,您可以将这些值连接到您可能使用的任何DB代码。
我不知道甲骨文,但我加入到我的SQL代码,如果(状态)是这样的:
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();
这是一个基本的更新,但你应该明白我的意思的问候将其应用于将其插入到表中的代码。
你检查网格属性是它设置只读=假,也editRow =真的吗? –
我无法在RADGRID中找到这两个属性。但是这意味着我没有将其设置为不可编辑模式? – RMN
我需要所有的复选框为可编辑的负载,而不是编辑按钮的点击。 – RMN