В C#, элемент управления UserControl : как я могу извлечь первичный ключ для использования в пользовательских элементов управления.ascx-файл?
- Привет! У меня есть GridView с привязанными к данным полями из базы данных mysql. Он содержит два столбца IdTask(первичный ключ),
TaskName и одна кнопка, которая открывает диалоговое окно jQuery.
Мне нужно заполнить этот диалог на основе идентификатора задачи из строки, в которой я нажал кнопку.
И у меня есть пользовательский элемент управления с другим Gridview, который содержит указанные данные, которые мне нужно отобразить в диалоговом окне.
Это то, что у меня есть до сих пор:
страница ASPX:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@ Register TagPrefix="ucFiles" TagName="Files" Src="~/UserControlFiles.ascx" the script: <script> $(document).ready(function () { $(".btnFiles").click(function () { $("#divModalFiles").dialog({ dialogClass: "no-close", modal: true, title: "Files", width: 450, height: 440, buttons: { Close: function () { $(this).dialog('close'); } }, open: function (type, data) { $(this).parent().appendTo("form"); } }); return false; }); }); </script> <form id="form1" runat="server" style="padding: 10px; width: 550px"> <asp:GridView DataKeyNames="IdTask" ID="gvTask" runat="server" AutoGenerateColumns="false"> <Columns> <asp:BoundField DataField="IdTask" HeaderText="ID" /> <asp:BoundField DataField="Name" HeaderText="Task" /> <asp:TemplateField> <ItemTemplate> <asp:ImageButton ID="btnFile" CssClass="btnFiles" runat="server" ImageUrl="img/files.png.png"/> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <div id="divModalFiles" style="display:none"> <ucFiles:Files runat="server"/> </div> </form> </body>
В пользовательского элемента управления ascx вносятся:
<div id="file"> <asp:Literal ID="litMesaj" runat="server" Visible="false"></asp:Literal> <asp:FileUpload ID="fUpload" runat="server" /> <br /> <br /> <asp:Label ID="lblDescFile" runat="server" Text="Description"></asp:Label> <asp:TextBox ID="txtDescFile" runat="server" ></asp:TextBox> <asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="btnUpload_Click" /> <br /> <br /> <asp:GridView ID="gvFiles" DataKeyNames="IdFiles" runat="server" AutoGenerateColumns="false" EmptyDataText="No files uploaded"> <Columns> <asp:BoundField DataField="IdFiles" HeaderText="ID" /> <asp:BoundField DataField="IdTask" HeaderText="IdTask" /> <asp:BoundField DataField="Name" HeaderText="File Name" /> <asp:BoundField DataField="Description" HeaderText="Description" /> <asp:TemplateField> <ItemTemplate> <asp:LinkButton ID="lnkDownload" runat="server" Text="Download File" OnClick="lnkDownload_Click" CommandArgument='<%# Eval("Url") %>'></asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:ImageButton runat="server" ID="btnDelFile" ImageUrl="~/delete.png.png" OnClientClick="return confirm('Sure?');" OnClick="btnDelFile_Click"/> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </div>
В ascx вносятся.в CS пользовательских элементов управления:
// the function i call in page load to display the files private void loadFiles() { string sqlFiles = "select * from files where IdTask=" + ?? ;// here is where i need the help how can i retrieve the IdTask from the gridview on the aspx Page? MySqlCommand cmd = new MySqlCommand(sqlFiles, conn); MySqlDataAdapter adp = new MySqlDataAdapter(cmd); DataTable dtFiles = new DataTable(); adp.Fill(dtFiles); gvFiles.DataSource = dtFiles; gvFiles.DataBind(); }
Вы не могли бы мне помочь? без этого идентификатора я также не могу использовать функции загрузки или загрузки файлов. В настоящее время он показывает только форму с загрузкой файлов и кнопкой загрузки
Если я не ясно выразился(английский не мой родной язык) с тем, что мне нужно, пожалуйста, не стесняйтесь задавать любые вопросы, и я объясню :)
РЕДАКТИРОВАТЬ:
Я также хочу добавить, что в базе данных у меня есть 2 таблицы:
1. IdTask, Задача
2. IdFile, IdTask, FileName и т. д..
таким образом, каждая задача имеет файл coresponding
Что я уже пробовал:
смотрю всякие учебники и до сих пор не имею решения