C# 如何从aspx中的Gridview行检索主键以在userControl.ascx中使用?
我有一个GridView,其中包含来自mysql数据库的数据绑定字段。它包含两列IdTask(主键), TaskName和一个打开jQuery对话框的按钮。 我需要根据单击按钮所在行的任务ID填充此对话框。 我有一个用户控件和另一个Gridview,其中包含我需要在对话框中显示的数据 这就是我到目前为止所做的: aspx页面: 你能帮我吗?没有这个ID,我也不能使用下载或上传文件功能。它当前仅显示带有文件上载和上载按钮的表单C# 如何从aspx中的Gridview行检索主键以在userControl.ascx中使用?,c#,jquery,mysql,visual-studio,gridview,C#,Jquery,Mysql,Visual Studio,Gridview,我有一个GridView,其中包含来自mysql数据库的数据绑定字段。它包含两列IdTask(主键), TaskName和一个打开jQuery对话框的按钮。 我需要根据单击按钮所在行的任务ID填充此对话框。 我有一个用户控件和另一个Gridview,其中包含我需要在对话框中显示的数据 这就是我到目前为止所做的: aspx页面: 你能帮我吗?没有这个ID,我也不能使用下载或上传文件功能。它当前仅显示带有文件上载和上载按钮的表单 如果我没有说明我需要什么(英语不是我的第一语言),请随时提问,我会解释
如果我没有说明我需要什么(英语不是我的第一语言),请随时提问,我会解释你的第一个问题是你需要回发来填充弹出窗口。这意味着
中的弹出窗口使用另一个单独的.aspx页面,该页面包含您的user.ascx控件。您可以通过URL传递activitateId
。注意:
不会回发,但它会在不刷新主页的情况下运行popup.aspx页面的页面生命周期
<div id="divModalFiles" style="display:none">
<iframe id="iframe_id" runat=server src="popup.aspx" ... />
</div>
在JS/JQuery中,在调用弹出窗口之前修改iframe src属性:
function AlterIframeSrc( ID )
{
$('#iframe_id').attr( 'src', 'popup.aspx?id=' + ID; );
}
选择2 或者,根据弹出窗口可能包含的数据量,您可以在主gridview的每一行中创建预加载的隐藏div。
像任何其他服务器控件一样,将.ascx放入主Gridview,并将
activitateId
作为控件参数传递给它
但是如果对于每个activitateId
您只获得少量数据,则只执行此操作,因为这会影响性能但是您不再需要回发来获取数据
这是对初始性能影响的权衡。优点是可以使用简单的javascript连接弹出窗口
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton runat="server" ID="btnDelFile" ImageUrl="~/delete.png.png" OnClientClick="return confirm('Sure?');" OnClick="btnDelFile_Click"/>
<div id="divModalFiles" style="display:none">
<ucFiles:Files runat="server" IDTask='<%# Eval("activitateId") %>'/>
</div>
</ItemTemplate>
</asp:TemplateField>
我添加的用户控件属性,IDTask
,将在.ascx中定义为可绑定的公共属性
<div id="divModalFiles" style="display:none">
<iframe id="iframe_id" runat=server src="popup.aspx" ... />
</div>
<html>
<head>
whatever you need here
</head>
<body>
<ucFiles:Files runat="server"/>
</body>
</html>
function AlterIframeSrc( ID )
{
$('#iframe_id').attr( 'src', 'popup.aspx?id=' + ID; );
}
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton runat="server" ID="btnDelFile" ImageUrl="~/delete.png.png" OnClientClick="return confirm('Sure?');" OnClick="btnDelFile_Click"/>
<div id="divModalFiles" style="display:none">
<ucFiles:Files runat="server" IDTask='<%# Eval("activitateId") %>'/>
</div>
</ItemTemplate>
</asp:TemplateField>