This is a migrated thread and some comments may be shown as answers.

get datakeyname when click button

6 Answers 290 Views
Grid
This is a migrated thread and some comments may be shown as answers.
niloofar
Top achievements
Rank 1
niloofar asked on 19 Jan 2011, 01:31 PM
hi
i cant get column value ,i save in label then i pass to other page
my code:

 <script type="text/javascript">
        function open1() {

            var obj_target = window.opener.document.forms[0];
            if (obj_target != null)
             {
                obj_target['ctl00$ContentPlaceHolder1$txtCustomerID'].value = document.getElementById("ID").value;
                obj_target['ctl00$ContentPlaceHolder1$txtLastname'].value = document.getElementById("lblName").value
;
            }
            self.close();
        }
    </script>
**********************************************************************************************
    <telerik:RadGrid ID="grdCustomersInfo" runat="server" AutoGenerateColumns="False"
            GridLines="None" Skin="Office2007" OnItemCommand="grdCustomersInfo_ItemCommand">
            <MasterTableView DataKeyNames="CustomerID">
                <RowIndicatorColumn>
                    <HeaderStyle Width="20px"></HeaderStyle>
                </RowIndicatorColumn>
                <ExpandCollapseColumn>
                    <HeaderStyle Width="20px"></HeaderStyle>
                </ExpandCollapseColumn>
                <Columns>
                    <telerik:GridTemplateColumn>
                        <ItemTemplate>
                            <asp:Label runat="server" ID="CustomerID" Text='<%# Eval("CustomerID") %>'></asp:Label>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridBoundColumn UniqueName="column" DataField="CustomerID" HeaderText="??">
                    </telerik:GridBoundColumn>
                    <telerik:GridTemplateColumn HeaderText="???">
                        <ItemTemplate>
                            <asp:Label runat="server" ID="lblFirstName" Text='<%# Eval("FirstName") %>'></asp:Label>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn HeaderText="??? ????????">
                        <ItemTemplate>
                            <asp:Label runat="server" ID="lblLastName" Text='<%# Eval("LastName") %>'></asp:Label>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridBoundColumn UniqueName="column3" DataField="" HeaderText="">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn UniqueName="column4" DataField="" HeaderText="">
                    </telerik:GridBoundColumn>
                    <telerik:GridTemplateColumn HeaderText="??????">
                        <ItemTemplate>
                            <asp:LinkButton runat="server" ID="lbSelect" CommandName="Select" Text="??????"></asp:LinkButton>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                </Columns>
            </MasterTableView>
            <HeaderContextMenu EnableAutoScroll="True">
            </HeaderContextMenu>
        </telerik:RadGrid>
i want when i click 'lbSelect' transfer customerid,FirstName,LastName to other page
thanks

6 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 20 Jan 2011, 08:51 AM
Hello Niloofar,

You can achieve this by attaching 'onclick' client event to LinkButton 'lbSelect' with row index as parameter. Then in the event handler access the other label controls and pass the value to new page. Following code shows how to access the value from client side.

C#:
protected void grdCustomersInfo_ItemCreated(object sender, GridItemEventArgs e)
    {
     if (e.Item is GridDataItem)
       {
           GridDataItem item = (GridDataItem)e.Item;
           LinkButton btn = (LinkButton)item.FindControl("lbSelect");
           btn.Attributes.Add("onclick","btnclick('"+item.ItemIndex+"');");
       }
    }

Java Script:
<script type="text/javascript">
       function btnclick(index) {
            var masterTable = $find("<%= grdCustomersInfo.ClientID%>").get_masterTableView();
            var row = masterTable.get_dataItems()[index];
            var lblid = row.findElement("CustomerID");
            var value=lblid.innerHTML;
            // access the other Label control also
        }
    </script>

Thanks,
Princy.
0
niloofar
Top achievements
Rank 1
answered on 23 Jan 2011, 08:40 AM

hi
i use this code : $find("<%# grdCustomersInfo.ClientID%>").get_masterTableView();
because $find("<%= grdCustomersInfo.ClientID%>").get_masterTableView();  has error

thanks for your answer i write your code but when i fire i have this error:
when i clicked in linkbutton :" var masterTable = $find("").get_masterTableView();"

Error: 'null' is null or not an object

after that i want close this window

thanks

0
niloofar
Top achievements
Rank 1
answered on 23 Jan 2011, 09:54 AM
i need your help
0
Vasil
Telerik team
answered on 25 Jan 2011, 03:25 PM
Hello niloofar,

You shoud use:
var masterTable = $find("<%= grdCustomersInfo.ClientID%>").get_masterTableView();
For more information see this help article and this site.

Please tell us what is the error that you get when using the code-above.

Greetings,
Vasil
the Telerik team
Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
0
niloofar
Top achievements
Rank 1
answered on 26 Jan 2011, 06:53 AM
when i use your code i have this error when page load:
the controls collection cannot be modified because the control contains code blocks(i.e <% ... %>)
please help me
thanks
0
Vasil
Telerik team
answered on 26 Jan 2011, 02:00 PM
Hello niloofar,

Try to place all javascript code that contains <% %> tags into RadCodeBlock, and place this inside the form tag, not in the header. For example see the code snippets bellow.

Master Page:
<head runat="server">
  <title></title>
  <asp:ContentPlaceHolder ID="head" runat="server">
  </asp:ContentPlaceHolder>
</head>
<body>
  <form id="form1" runat="server">
  <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
  </telerik:RadScriptManager>
  <div>
    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
    </asp:ContentPlaceHolder>
  </div>
  </form>
</body>
</html>

Content Page:
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
  <telerik:RadCodeBlock runat="server">
    <script type="text/javascript">
      function btnclick(index) {
        var masterTable = $find("<%= radGrid1.ClientID%>").get_masterTableView();
        return false;
      }
    </script>
  </telerik:RadCodeBlock>
  <telerik:RadGrid runat="server" ID="radGrid1" OnNeedDataSource="radGrid1_NeedDataSource">
  </telerik:RadGrid><asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return(btnclick())" />
</asp:Content>

Kind regards,
Vasil
the Telerik team
Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
Tags
Grid
Asked by
niloofar
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
niloofar
Top achievements
Rank 1
Vasil
Telerik team
Share this question
or