如何检索Asp.net页面上usercontrol中单击的按钮的ID?
我有一个我正在处理的页面,我正在将多个用户控件链接到该页面。用户控件包含3个按钮,即“附加”、“清除”和“查看”按钮。当用户单击页面上的任何控件时,生成的信息将“转储”到页面上最后一个可见的控件中如何检索Asp.net页面上usercontrol中单击的按钮的ID?,asp.net,user-controls,Asp.net,User Controls,我有一个我正在处理的页面,我正在将多个用户控件链接到该页面。用户控件包含3个按钮,即“附加”、“清除”和“查看”按钮。当用户单击页面上的任何控件时,生成的信息将“转储”到页面上最后一个可见的控件中 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" MasterPageFile="DefaultPage.master" %> <%@ Registe
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" MasterPageFile="DefaultPage.master" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<%@ Register tagName="FileHandler" src="FileHandling.ascx" tagPrefix="ucFile" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Main" Runat="Server">
<asp:UpdatePanel ID="upPanel" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<table>
<tr>
<td>
<ucFile:FileHandler ID="fFile1" runat="server" />
</td>
<td>
<ucFile:FileHandler ID="fFile2" runat="server" />
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
var ItemPath=“”;
功能设置上载(文件){
ItemPath=文件;
VersionAttach('',true');
}
函数上载完成(文件){
document.getElementById(“”).value=File.substring(File.lastIndexOf(“/”)+1);
document.getElementById(“”).value=File;
警报(“”);
警报(“”)
}
函数ViewLink(文件、警报){
如果(文件!=“”){
if(File.indexOf(“../data/”)!=-1){
打开(文件“_blank”);
}
否则{
window.open('../data/'+文件'.\u blank');
}
}
否则如果(警报==“”){
警报('此字段未上载任何文件');
}
}
有两种方法
a) 使用control.FindControl(“hfFile”)
(b)
在我的例子中,我实现这一点的方法是在输入按钮(客户机控件)上放置一个标题,然后将我想要的控件(本例中为textbox)的clientid值传递给onclick事件(客户机事件)中的函数。然后,单击按钮时,我“强制”控件的使用者使用此信息。这里提出这个问题的原因是为了找出是否有更好的方法在控件中实现这一点,而不是让控件的使用者处理数据。这对我来说确实有用,只是看起来不像我想要的那么干净。你找到答案了吗@ShawnGilligan?我还没有找到这个问题的答案。我确实看到了你的回应,谢谢你。
<table style="width: 50%;">
<tr style="white-space: nowrap;">
<td style="width: 1%;">
<asp:Label runat="server" ID="lblFile" />
</td>
<td style="width: 20%;">
<asp:TextBox ID="txtFile" CssClass="backColor" runat="server" OnTextChanged="FileInformationChanged" />
</td>
<td style="width: 1%">
<%--<asp:Button runat="server" ID="btnUpload" CssClass="btn" Text="Attach" OnClick="UploadFile"/>--%>
<input type="button" id="btnUpload" class="btn" tabindex="30" value="Attach" onclick="SetupUpload();" />
</td>
<td style="width: 1%">
<%--<asp:Button runat="server" ID="btnClear" Text="Clear" CssClass="btn" OnClick="ClearTextValue"/>--%>
<input type="button" id="btnClearFile" class="btn" value="Clear" onclick="document.getElementById('<%=txtFile.ClientID%>').value = '';document.getElementById('<%=hfFile.ClientID%>').value = '';" />
</td>
<td style="width: 1%">
<a href="#here" onclick="ViewLink(document.getElementById('<%=hfFile.ClientID%>').value, '')">View</a>
</td>
<td style="width: 1%">
<asp:HiddenField ID="hfFile" runat="server" />
</td>
</tr>
</table>
<script type="text/javascript">
var ItemPath = "";
function SetupUpload(File) {
ItemPath = File;
VersionAttach('<%=UploadPath%>', 'true');
}
function UploadComplete(File) {
document.getElementById('<%=txtFile.ClientID%>').value = File.substring(File.lastIndexOf("/") + 1);
document.getElementById('<%=hfFile.ClientID%>').value = File;
alert('<%=txtFile.Text %>');
alert('<%=ClientID %>')
}
function ViewLink(File, Alert) {
if (File != "") {
if (File.indexOf("../data/") != -1) {
window.open(File, '_blank');
}
else {
window.open('../data/<%=UploadPath%>/' + File, '_blank');
}
}
else if (Alert == "") {
alert('No file has been uploaded for this field.');
}
}
</script>
private HiddenField hfFile;
protected void hfFile_OnInit(object sender, EventArgs e){
hfFile = (HiddenField)sender;
}