访问 radgrid 内的链接按钮出现错误
我正在尝试从 javascript 访问 radgrid control(linkbutton)。我收到一个空定义的错误。下面是我的 javascript 和 radgrid。 radgrid 位于 radpanel 内部,也是我调用 javascript 的隐藏代码。
<script>
function warningMessage(rowIndex) {
debugger;
var dataItems = $find('<%= RadPanelBar1.Items[0].Items[0].FindControl("RadGrid_MCLIDPicker").ClientID %>').get_masterTableView().get_dataItems();
-- getting null error in the above line
}
</script>
我的 radgrid 在下面
<telerik:RadPanelBar ID="RadPanelBar1" runat="server" Width="1500px" BackColor="#E6E6E6"
ExpandMode="MultipleExpandedItems">
<Items>
<telerik:RadPanelItem runat="server" Text="ID Picker" Expanded="true">
<Items>
<telerik:RadPanelItem Text="" Expanded="true">
<ItemTemplate>
<table>
<tr>
<td>
<telerik:RadGrid ID="RadGrid_IDPicker" AllowSorting="false" AllowPaging="false"
runat="server" GridLines="None" Width="1500px" Visible="false">
<MasterTableView RetrieveAllDataFields="true" AutoGenerateColumns="false" DataKeyNames="ID" EnableViewState="true" ClientDataKeyNames="ID" >
<Columns>
<telerik:GridTemplateColumn UniqueName="TemplateLinkColumn" AllowFiltering="false"
HeaderText="ID">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="ID_Link_Click" Text='<%#Bind("ID") %>'></asp:LinkButton>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
<PagerStyle Mode="NextPrevAndNumeric" />
</telerik:RadGrid>
</td>
</tr>
</table>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="radBtn_Search">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGrid_IDPicker" LoadingPanelID="LoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="ID_Link">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGrid_IDPicker" LoadingPanelID="LoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
</ItemTemplate>
</telerik:RadPanelItem>
</Items>
</telerik:RadPanelItem>
</Items>
</telerik:RadPanelBar>
我的代码是
protected void ID_Link_Click(object sender, EventArgs e)
{
try
{
LinkButton btn = (LinkButton)sender;
GridDataItem row = (GridDataItem)btn.NamingContainer;
ScriptManager.RegisterStartupScript(Page, this.GetType(), "message", string.Format("warningMessage('{0}');", row.ItemIndex), true);
}
catch()
{
I am trying to access radgrid control(linkbutton) from javascript. I am getting a null defined error. Below is my javascript and radgrid. radgrid is inside the radpanel and also the code behind from where I am invoking the javascript.
<script>
function warningMessage(rowIndex) {
debugger;
var dataItems = $find('<%= RadPanelBar1.Items[0].Items[0].FindControl("RadGrid_MCLIDPicker").ClientID %>').get_masterTableView().get_dataItems();
-- getting null error in the above line
}
</script>
And my radgrid is below
<telerik:RadPanelBar ID="RadPanelBar1" runat="server" Width="1500px" BackColor="#E6E6E6"
ExpandMode="MultipleExpandedItems">
<Items>
<telerik:RadPanelItem runat="server" Text="ID Picker" Expanded="true">
<Items>
<telerik:RadPanelItem Text="" Expanded="true">
<ItemTemplate>
<table>
<tr>
<td>
<telerik:RadGrid ID="RadGrid_IDPicker" AllowSorting="false" AllowPaging="false"
runat="server" GridLines="None" Width="1500px" Visible="false">
<MasterTableView RetrieveAllDataFields="true" AutoGenerateColumns="false" DataKeyNames="ID" EnableViewState="true" ClientDataKeyNames="ID" >
<Columns>
<telerik:GridTemplateColumn UniqueName="TemplateLinkColumn" AllowFiltering="false"
HeaderText="ID">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="ID_Link_Click" Text='<%#Bind("ID") %>'></asp:LinkButton>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
<PagerStyle Mode="NextPrevAndNumeric" />
</telerik:RadGrid>
</td>
</tr>
</table>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="radBtn_Search">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGrid_IDPicker" LoadingPanelID="LoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="ID_Link">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGrid_IDPicker" LoadingPanelID="LoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
</ItemTemplate>
</telerik:RadPanelItem>
</Items>
</telerik:RadPanelItem>
</Items>
</telerik:RadPanelBar>
My code behind is
protected void ID_Link_Click(object sender, EventArgs e)
{
try
{
LinkButton btn = (LinkButton)sender;
GridDataItem row = (GridDataItem)btn.NamingContainer;
ScriptManager.RegisterStartupScript(Page, this.GetType(), "message", string.Format("warningMessage('{0}');", row.ItemIndex), true);
}
catch()
{
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我必须获得 radpaelbar 的参考,这就是我所做的
I had to get the reference of the radpaelbar and this is how I did it
我怀疑您是否需要先获得对 PanelBar 的引用,然后才能获得对 RadGrid 的引用。尝试简单地这样做:
I doubt that you need to get a reference to the PanelBar before you can get a reference to the RadGrid. Try doing simply this:
我同意 Icarus 的观点——我认为您不需要获取对 PanelBar 的引用来访问 RadGrid。如果您需要访问该链接按钮,您可以循环访问您获得的数据项。您可以尝试执行以下操作:
I agree with Icarus -- I don't think that you need to get a reference to the PanelBar to access the RadGrid. If you need to access that linkbutton, you can loop through the dataItems that you get. You can try to do the following: