Height="150px" HeaderStyle-Wrap="false " CommandItemStyle-Wrap="false" -----------------内容和标题不换行
CellSpacing="0" Culture="zh-CN" DataSourceID="sdsSaleOrderDetails" AllowAutomaticDeletes="True"
AllowAutomaticInserts="True" GridLines="None" OnInsertCommand="RadGrid1_InsertCommand"
OnItemCommand="RadGrid1_ItemCommand" OnItemUpdated="RadGrid1_ItemUpdated" OnUpdateCommand="RadGrid1_UpdateCommand"
OnDeleteCommand="RadGrid1_DeleteCommand" OnItemEvent="RadGrid1_ItemEvent" >
<ClientSettings EnableRowHoverStyle="true"> ------------------ onmouesover out 有样式
<Selecting AllowRowSelect="true" />----------------------------允许选中行
<Scrolling AllowScroll="true" />------------------------------------有滚动条
</ClientSettings>
<MasterTableView CommandItemDisplay="Top" DataKeyNames="SalesItemNo" DataSourceID="sdsSaleOrderDetails">
<CommandItemSettings ExportToPdfText="Export to PDF" AddNewRecordText="添加" RefreshText="刷新">
</CommandItemSettings>
<RowIndicatorColumn FilterControlAltText="Filter RowIndicator column">
<HeaderStyle Width="20px"></HeaderStyle>
</RowIndicatorColumn>
<ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
<HeaderStyle Width="20px"></HeaderStyle>
</ExpandCollapseColumn>
<Columns>
<telerik:GridTemplateColumn>
<ItemTemplate>
<asp:LinkButton ID="butup" runat="server" CommandName="update" Text="编辑" CommandArgument='<%#Eval("SalesItemNo") %>' />
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridButtonColumn ButtonType="ImageButton" CommandName="Delete" ConfirmDialogType="RadWindow"
ConfirmText="确认要删除?" ConfirmTitle="提示信息" FilterControlAltText="Filter column column"
HeaderText="删除" UniqueName="column">
</telerik:GridButtonColumn>
<telerik:GridBoundColumn DataField="SalesItemNo" DataType="System.Int32" FilterControlAltText="Filter SalesItemNo column"
HeaderText="明细号" ReadOnly="True" SortExpression="SalesItemNo" UniqueName="SalesItemNo"
Visible="False">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="PartCode" FilterControlAltText="Filter PartCode column"
HeaderText="SKU" SortExpression="PartCode" UniqueName="PartCode">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="PartName" FilterControlAltText="Filter PartName column"
HeaderText="名称" SortExpression="PartName" UniqueName="PartName">
</telerik:GridBoundColumn>
</Columns>
<NoRecordsTemplate>
<div style="color: #F00; height: 40px; line-height: 40px;">
<span style="margin-left: 10px; font-size: 14px; font-weight: bold;">还没有选择产品!</span>
</div>
</NoRecordsTemplate>
</MasterTableView>
<FilterMenu EnableImageSprites="False">
</FilterMenu>
<HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default">
</HeaderContextMenu>
</telerik:RadGrid>
后台:
1.添加修改事件(这里的功能是弹出一个新的子窗体)
protected void RadGrid1_ItemCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
if (e.CommandName.ToLower() == "InitInsert".ToLower() || e.CommandName.ToLower() == "update".ToLower())
{
e.Canceled = true;
string id = Request.QueryString["id"];
string str = "";
string SalesItemNo = e.CommandArgument.ToString();
if (e.CommandName.ToLower() == "update".ToLower())
{
str = "radopen('AddSaleOrderDetails.aspx?cust_id=" + CustomerCode + "&orderid=" + this.txtOrderid.Text.Trim() + "&SalesItemNo=" + SalesItemNo + "', 'addwind');";---------》addwind指的是 弹出窗体的名字,他在前台RadWindowManager 存在 如下代码:
}
else
{
str = "radopen('AddSaleOrderDetails.aspx?cust_id=" + CustomerCode + "&orderid=" + this.txtOrderid.Text.Trim() + "&SalesItemNo=0', 'addwind');";
}
RadAjaxManager1.ResponseScripts.Add(str);
}
}
<telerik:RadWindowManager ID="RadWindowManager1" runat="server">
<Windows>
<telerik:RadWindow ID="addwind" runat="server" Modal="True" NavigateUrl="AddSaleOrderDetails.aspx"
Style="display: none;" Height="400px" VisibleStatusbar="False" Width="350px"
OnClientClose="OnClientClose">
</telerik:RadWindow>
</Windows>
</telerik:RadWindowManager>
2. 添加时要在后台给的参数
protected void RadGrid1_InsertCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
sdsSaleOrderDetails.InsertParameters["CompanyCode"].DefaultValue = Session["Company"].ToString();
sdsSaleOrderDetails.InsertParameters["ProjectCode"].DefaultValue = Session["Project"].ToString();
sdsSaleOrderDetails.InsertParameters["SalesOrderNo"].DefaultValue = this.txtOrderid.Text;
}
3.删除事件
string deletsql = "delete from SaleOrderDetails where SalesOrderNo='" + ViewState["SalesOrderNo"].ToString() + "'";
deletsql += ";delete from SaleOrderDiscounts where SalesOrderNo='" + ViewState["SalesOrderNo"].ToString() + "'";
deletsql += "; delete from SaleOrders where SalesOrderNo='" + ViewState["SalesOrderNo"].ToString() + "'";
sdsSaleOrder.DeleteCommand = deletsql;
int i= sdsSaleOrder.Delete();-----------------------------------》sql语句能这样写
4.如果弹出的添加窗体需要再弹出一个窗体那么在添加窗体中如下 :
前台:
<script type="text/javascript">
function GetRadWindow() {
var oWindow = null;
if (window.radWindow) oWindow = window.radWindow;
else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
return oWindow;
}
function openWin2() {
var parentPage = GetRadWindow().BrowserWindow;
var parentRadWindowManager = parentPage.GetRadWindowManager();
var oWnd2 = parentRadWindowManager.open("../PM/SelectProduct.aspx?str=1", "RadWindow2");-----------------弹出的第二个窗体
window.setTimeout(function () {
oWnd2.setActive(true);
}, 0);
}
《--
<input id="inpusherch" runat="server" type="button" value="..." οnclick="openWin2();" />
--》
function getstr(arg)------------第二个窗体所调用的方法
{
var result = arg;
var arr=result.split("|");
var product_sku =arr[0];
var skuname = arr[1];
var prices = arr[2];
var oldprice = arr[3];
var objSelect = document.getElementById("txtsku");
var name = document.getElementById("txtskuname");
var price = document.getElementById("txtprice");
var old = document.getElementById("txtoldprice");
var xiaoji = document.getElementById("txtxiaoji");
var Discount = document.getElementById("txtDiscount");
objSelect.value = product_sku;
name.value = skuname;
price.value = prices;
old.value = oldprice;
xiaoji.value = 0;
Discount.value = 0;
var hidsku = document.getElementById("HiddenField1");
hidsku.value = product_sku;
}
function returnToParent(saveok) {
//create the argument that will be returned to the parent page
var oArg = new Object();
//get the city's name
oArg.saveok = saveok;
//get the selected date from RadDatePicker
//get a reference to the current RadWindow
var oWnd = GetRadWindow();
oWnd.close(oArg);
}
function RadButton3_Click(sender, args)
{
args.set_cancel(true);
returnToParent('0');
}-----------------点取消按钮时调用
第二个窗体的前台
<script type="text/javascript">
function GetRadWindow() {
var oWindow = null;
if (window.radWindow) oWindow = window.radWindow;
else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
return oWindow;
}
function RowDblClick(sender, eventArgs) {
//获取gird列的值:
var pcode = eventArgs._tableView._dataItems[eventArgs._itemIndexHierarchical]._element.cells[1].innerHTML;
var name = eventArgs._tableView._dataItems[eventArgs._itemIndexHierarchical]._element.cells[2].innerHTML;
var price = eventArgs._tableView._dataItems[eventArgs._itemIndexHierarchical]._element.cells[3].innerHTML;
var oldprice = eventArgs._tableView._dataItems[eventArgs._itemIndexHierarchical]._element.cells[4].innerHTML;
var hidstr = document.getElementById("hidstr").value;
var oWnd = GetRadWindow();
if (hidstr == 1) {
var str = pcode + "|" + name + "|" + price + "|" + oldprice;
//get a reference to the second RadWindow
var dialog1 = oWnd.get_windowManager().getWindowByName("addwind");
// Get a reference to the first RadWindow's content
var contentWin = dialog1.get_contentFrame().contentWindow
//Call the predefined function in Dialog1
contentWin.getstr(str);------调用父级方法
//Close the second RadWindow
oWnd.close();
} else {
var oArg = new Object();
oArg.code = pcode;
oArg.name = name;
if (oArg.code && oArg.name) {
oWnd.close(oArg);--------------------调用
}
else {
alert("没有取到值!");
}
}
}
</script>