Вызов метода usercontrol из gridview onrowcommand
Привет,
В моей сетке, у меня есть один imgbutton и пользовательских элементов управления linkbutton и привязки сетки данных. Я использую RowCOmmand
Проблемы
1. Можете получить пользовательский идентификатор
2. Можете получить методы управления.
Может ли кто-нибудь дать мне какое-нибудь предложение, как решить эту проблему?
Что я уже пробовал:
HI, <pre> <asp:GridView runat="server" ID="grdNotfiy" OnRowCommand="grdNotfiy_RowCommand" OnRowDataBound="grdNotfiy_RowDataBound" GridLines="None" Width="100%" AutoGenerateColumns="false" DataKeyNames="KeyIdUnique,ReferenceKey"> <Columns> <asp:TemplateField> <ItemTemplate> <table style="padding: 5px;"> <tr style="border: none;"> <td style="border: none;"> <asp:Label ID="lblAlertTypeId" runat="server" Text='<%#Eval("AlertTypeId")%>' Visible="false"></asp:Label> <asp:HiddenField ID="hdnKeyId" runat="server" Value='<%# Eval("KeyIdUnique") %>' /> <a href="div<%# Eval("PageId")%>" id="imgCollapse"> <asp:ImageButton runat="server" ID="imgNotify" CommandName="NotifyValidate" ImageUrl='<%# Eval("NotifyImage")%>' Height="30" Width="30" CssClass="mt-1" /> </a> </td> <td style="border: none; width: 200px; padding: 10px;"> <a href="div<%# Eval("KeyIdUnique")%>" id="expndPopup"> <asp:LinkButton runat="server" ForeColor="Brown" ID="lnkNotify" Text='<%# Eval("AlertNotes") %>' CommandName="Select"> </asp:LinkButton> </a> </td> </tr> <div class="dvDetails"> <tr class="detail" id="myDetail" runat="server" style="overflow: hidden; border-color: #fff; display: none;"> <td id="Td1" colspan="3" runat="server"> <h1>hello</h1> <Kolme:LeaveAprrve ID="usrLveArpvls" runat="server" LeaveApprve='<%# Eval("KeyIdUnique") %>'/> </td> </tr> </div> <tr> <td></td> <td style="border: none;"> <asp:LinkButton ID="lnkSave" CssClass="mt-2 align-content-center" runat="server" Style="text-align: center;" Width="30" Height="22" ToolTip="Approve" CommandName="LApprove" CommandArgument='<%#((GridViewRow) Container).RowIndex %>'><span><img src="../../Images/accept_button.png" width="20" height="20" style="margin-top:-10px;" alt="Save" /></span> </asp:LinkButton> </td> </tr> <tr> <td colspan="2" style="border: 1px solid groove"> <hr /> </td> </tr> </table> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
охраняемых недействительными grdNotfiy_RowCommand(объект отправителя, GridViewCommandEventArgs е)
{
GridViewRow clickedRow = ((LinkButton)e.CommandSource).NamingContainer как GridViewRow;
строка cmndName = e.CommandName;
if (cmndName == "Select")
{
var lveRqstId = грднотфий.DataKeys[clickedRow.Параметр rowindex].Значения["KeyIdUnique"];
var refkey = грднотфий.DataKeys[clickedRow.Параметр rowindex].Значения["ReferenceKey"];
if (refkey != null)
{
ВАР в JSON = refkey.Метод toString();
DashBoardAlert key = JsonConvert.DeserializeObject<dashboardalert>(json);
строка empid = ключ.столбец EmployeeID.Метод toString();
если (!строка.IsNullOrEmpty(empid))
{
Сеанс["NotifyEmpId"] = empid;
}
}
if (lveRqstId != null && lveRqstId != "")
{
Сессия["LveReqstId"] = lveRqstId;
}
Control userControl =(clickedRow.FindControl("usrLveArpvls") как элемент управления);
if (userControl != null)
{
GridView nestdGrid = (userControl.FindControl("grdLeaves") как GridView);
}
}
}
Код пользовательского элемента управления
публичный список<approveleaverequestlistview> GetData(строка leaverequestid)
{
возврат lstApproveLeaves;
}
}