У меня есть столбец gridview, который содержит кликабельную строку.при щелчке по строке появится всплывающее окно сетки.Например: когда я нажимаю на строку, всплывающее окно сетки отображается в соответствии с идентификатором.** идентификатор кошки в строке - всплывающее окно сетки для идентификатора кошки **
Мой код работает для отображения всплывающего окна сетки для всех идентификаторов, но когда я вставляю clientideevent, нажмите asp.net, как показано ниже, тогда всплывающее окно сетки не отображаетсявсплывающее окно, и когда я вставляю функцию обратного вызова в ASPxHyperlink_Init, как это
link.ClientSideEvents.Click = String.Format("function(s, e) {{ OnMoreInfoClick('{0}');UpdateSplitGrid.PerformCallback(""" & Eval("LotID").ToString & """); }}", sno)
, то эта ошибка показала
System.InvalidOperationException: Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control.
Мой код какниже:
ASP.NET Mark Up
function OnMoreInfoClick(contentUrl) {
popupControl.Show();
}
<dx:GridViewDataTextColumn VisibleIndex="8" Caption="Detail" EditFormSettings-Visible="False" >
<DataItemTemplate>
<dx:ASPxHyperLink ID="ASPxHyperLink" runat="server" OnInit="ASPxHyperLink_Init" >
<ClientSideEvents Click= '<%# "function(s,e) { UpdateSplitGrid.PerformCallback(""" & Eval("LotID").ToString & """); }" %>'></ClientSideEvents>
</dx:ASPxHyperLink>
</DataItemTemplate>
</dx:GridViewDataTextColumn>
VB.NET
Protected Sub ASPxHyperLink_Init(sender As Object, e As EventArgs)
Dim link As ASPxHyperLink = CType(sender, ASPxHyperLink)
Dim templateContainer As GridViewDataItemTemplateContainer = CType(link.NamingContainer, GridViewDataItemTemplateContainer)
Dim rowVisibleIndex As Integer = templateContainer.VisibleIndex
Dim sno As String = templateContainer.Grid.GetRowValues(rowVisibleIndex, "sno").ToString()
Dim SplitTable As String = templateContainer.Grid.GetRowValues(rowVisibleIndex, "Detail").ToString()
' Dim contentUrl As String = String.Format("{0}?sno={1}", sno)
link.Text = "Split Table"
link.NavigateUrl = "javascript:void(0);"
link.ClientSideEvents.Click = String.Format("function(s, e) {{ OnMoreInfoClick('{0}');}}", sno)
End Sub
Protected Sub UpdateSplitGrid_CustomCallback(sender As Object, e As ASPxGridViewCustomCallbackEventArgs)
Dim mssql_string As String = "Data Source=xx;Initial Catalog=xx;User Id=xx;Password=xx;Provider=SQLNCLI10"
Dim con As New OleDbConnection(mssql_string)
Dim dt1 As New DataTable
Dim xdapter As New OleDbDataAdapter
con.Open()
Dim cmd As New OleDbCommand("select * from PTHOME.dbo.SplitTable where LotID = '" + e.Parameters + "'", con)
xdapter.SelectCommand = cmd
xdapter.Fill(dt1)
con.Close()
UpdateSplitGrid.DataSource = dt1
UpdateSplitGrid.DataBind()
End Sub
Пожалуйста, помогите мне, спасибо заранее.