需要一些帮助来解决这个问题。我想在我的RadGrid中添加一个On RowClick事件处理程序来处理RadGrid Editform模式中RadComboBox的选择。我想要做的是,当用户从组合框中进行选择时,显示RadWindow以允许用户在RadGrid Editform的文本框中显示其他选择。到目前为止,我没有显示任何内容,甚至没有显示警报框
function RowCreated(rowObject) {
alert("Row with Index: " + rowObject.Index + " was created");
}
function RowSelected(sender, args) {
alert("row selected");
inputFieldValue = args.getDataKeyValue("Type");
alert(inputFieldValue);
}
function RowClick(rowIndex, e) {
alert("row Clicked");
var sourceElement;
alert(rowIndex);
}
网格附件发生在客户端事件标记
中<telerik:RadGrid ID="securityGrid" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="false" Height="99.9%" AllowCustomPaging="true">
<MasterTableView ShowFooter="true" AutoGenerateColumns="False" AllowSorting="true" AllowPaging="true" EnableViewState="true" ClientDataKeyNames="HKey" DataKeyNames="HKey">
<NoRecordsTemplate>
<div align="center" style="font-weight: bold; font-size: 16px; color: Green; width: 100%;">
There Are No Records To Display. Please Select Another View.</div>
</NoRecordsTemplate>
<Columns>
<telerik:GridBoundColumn UniqueName="EHKey" Visible="false" DataField="EHKey" />
<telerik:GridCheckBoxColumn UniqueName="Active" HeaderText="Active" DataField="Active"
ColumnEditorID="ReportEditor">
<ItemStyle Width="70" />
<HeaderStyle Width="70" />
</telerik:GridCheckBoxColumn>
<telerik:GridDropDownColumn UniqueName="UILocation" DataSourceID="UILocation_DS"
HeaderText="UI Location" DataField="UILocation" ListTextField="Description" ListValueField="PrimaryKey"
DropDownControlType="RadComboBox" ColumnEditorID="ReportEditor">
<ItemStyle Width="20%" Height="18" />
<HeaderStyle Width="20%" />
</telerik:GridDropDownColumn>
<telerik:GridDropDownColumn UniqueName="Type" DataSourceID="SecurityType_DS" HeaderText="Type"
DataField="SecurityType" ListTextField="Description" ListValueField="PrimaryKey"
DropDownControlType="RadComboBox" ColumnEditorID="ReportEditor">
<ItemStyle Width="120" Height="18" />
<HeaderStyle Width="120" />
</telerik:GridDropDownColumn>
<telerik:GridBoundColumn UniqueName="Item" HeaderText="Item" DataField="ItemList"
ColumnEditorID="ReportEditor">
<ItemStyle Width="10%" />
<HeaderStyle Width="10%" />
</telerik:GridBoundColumn>
<telerik:GridDropDownColumn UniqueName="Access" DataSourceID="AccessType_DS" HeaderText="Access"
DataField="AccessType" ListTextField="Description" ListValueField="PrimaryKey"
DropDownControlType="RadComboBox" ColumnEditorID="ReportEditor">
<ItemStyle Width="120" />
<HeaderStyle Width="120" />
</telerik:GridDropDownColumn>
<%-- <telerik:GridBoundColumn UniqueName="ItemList" Visible="false" DataField="ItemList" />--%>
<telerik:GridEditCommandColumn HeaderText="Edit" ButtonType="ImageButton" UniqueName="EditCommandColumn">
<ItemStyle Width="40" CssClass="WATSImageButton" />
<HeaderStyle Width="40" />
</telerik:GridEditCommandColumn>
<telerik:GridButtonColumn UniqueName="DeleteCommandColumn" ButtonType="ImageButton"
CommandName="Delete" HeaderText="Del" ConfirmTitle="Delete Strategy Milestone!"
ConfirmText="Are you sure you want to delete this record?" ConfirmDialogType="RadWindow"
ConfirmDialogHeight="100" ConfirmDialogWidth="350">
<ItemStyle Width="35" CssClass="WATSImageButton" />
<HeaderStyle Width="35" />
</telerik:GridButtonColumn>
</Columns>
<EditFormSettings>
<FormMainTableStyle GridLines="None" CellSpacing="0" CellPadding="0" Width="100%"
CssClass="masterTable" />
<FormTableStyle CellSpacing="0" CellPadding="0" Width="50%" />
<FormStyle Width="100%" BackColor="#ffffe1"></FormStyle>
<EditColumn ButtonType="ImageButton" CancelText="Cancel" UpdateText="Update" InsertText="Add" />
</EditFormSettings>
</MasterTableView>
<ClientSettings>
<Scrolling AllowScroll="True" UseStaticHeaders="True" />
<ClientEvents OnRowClick="RowClick" OnGridCreated="GridCreated" />
<Selecting AllowRowSelect="false" />
<ClientEvents />
</ClientSettings>
</telerik:RadGrid>
答案 0 :(得分:0)
调试你的js代码以查看它的哪些部分被处理以及是否发生错误。这可以帮助您追踪错误。
答案 1 :(得分:0)
请看以下一行:
alert("Click on row instance: " + eventArgs.get_itemIndexHierarchical());
您尚未定义eventArgs。这是该函数的第一行,因此当您单击该行时,“无”会发生这种情况。
将您的功能更改为:
function RowClick(rowIndex, eventArgs) {
alert("Click on row instance: " + eventArgs.get_itemIndexHierarchical());
var e = window.event;
var sourceElement;
alert(sourceElement);
if (e.srcElement) {
sourceElement = e.srcElement;
alert("sourceElement");
}
else if (e.target) {
sourceElement = e.target;
alert("target");
}
alert("About to check ROw Index");
if (rowIndex != null) {
alert("Checked ROw Index");
inputField = grid.MasterTableView.Rows[rowIndex].Control.getElementsByTagName("INPUT")[0];
alert(inputField);
selvalue = sourceElement.value;
alert(selvalue);
if (inputField != null) {
alert("About to show it");
var popuppage = "userroleselect.aspx" + "?sel=" + selvalue + "&avail=" + inputField.value;
alert("Shown it!");
window.radopen(popuppage, "UserRoleDialog");
}
else {
alert("Did Not Make it");
}
}
}
注意eventArgs参数还注意到函数中现在定义了变量e。