asp.net中普通超链接如何触发C#事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net中普通超链接如何触发C#事件相关的知识,希望对你有一定的参考价值。

普通超链接也就是<a></a>标签如何触发C#中的某一事件呢,这个超链接我是使用第三方控件在页面的onLoad事件来生成的,所以就无法触发C#事件了,我是初学者,请高手们指教!~
朋友们的回复都很好,可以实现,学习了。
可是我要向事件里传一个参数,却无法实现了,者应当如何解决呢?

页面上做一个服务器端的Button按钮 ID为Button1,隐藏起来。
点击超链接的时候触发Button的点击事件。
<a href="#" onclick="document.getElementById('Button1').click()">Test</a>
参考技术A http://zhidao.baidu.com/question/48660127.html 参考技术B <a href="#" onclick="document.getElementById('Button1').click()">aaa</a> 参考技术C ajax异步请求 参考技术D 可以百度一下“ __doPostBack”

如何在 c# ASP.NET 中使用 GridView_RowCommand 事件从 GridView 获取图像

【中文标题】如何在 c# ASP.NET 中使用 GridView_RowCommand 事件从 GridView 获取图像【英文标题】:How to get image from GridView using GridView_RowCommand event in c# ASP.NET 【发布时间】:2015-06-28 11:32:57 【问题描述】:

我正在使用 c# ASP.NET 在 GridView 内进行编辑操作。当用户单击编辑按钮时,我需要从该行检索所有数据并显示在文本框中,但这里我无法显示图像。我正在解释下面是我的代码。

faq.aspx:

<div class="row">
    <div class="col-md-6">
        <label for="question" accesskey="T"><span class="required">*</span> Question</label>
        <asp:TextBox ID="TextBox1" runat="server"  size="30" value="" name="question" ></asp:TextBox>
        <div id="noty" style="display:none;" runat="server"></div>
        <label for="answer" accesskey="A"><span class="required">*</span> Answer</label>
        <asp:TextBox ID="TextBox2" runat="server"  size="30" value="" name="answer" ></asp:TextBox>
        <div id="Div1" style="display:none;" runat="server"></div>
    </div>
    <div class="col-md-6 bannerimagefile">
        <label for="insertimage" accesskey="B"><span class="required">*</span> Insert Image</label>
        <asp:FileUpload runat="server" class="filestyle" data-size="lg" name="insertimage" id="FileUpload1" onchange="previewFile()" />
        <label for="bannerimage" accesskey="V"><span class="required">*</span> View Image</label>
        <div style="padding-bottom:10px;">
            <asp:Image ID="Image3" runat="server" border="0" name="bannerimage" style="width:70px; height:70px;"   />
        </div>
        <div class="clear"></div>
        <asp:Button ID="Button1" runat="server" Text="Submit" class="submit" 
            onclick="Button1_Click" />
        </div>
</div>

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" Width="100%" CssClass="table table-striped table-bordered margin-top-zero" OnRowCommand="GridView1_RowCommand" >
    <Columns>
       <asp:TemplateField HeaderText="Sl No">
       <ItemTemplate>
       <asp:Label ID="faqid" runat="server" Text='<%#Eval("FAQ_ID") %>'></asp:Label>
       </ItemTemplate>
       </asp:TemplateField>
       <asp:TemplateField HeaderText="Question" >
       <ItemTemplate>
       <asp:Label ID="question" runat="server" Text='<%#Eval("Question") %>'></asp:Label>
       </ItemTemplate>
       </asp:TemplateField>
       <asp:TemplateField HeaderText="Answer" >
       <ItemTemplate>
       <asp:Label ID="answer" runat="server" Text='<%#Eval("Answer") %>'></asp:Label>
       </ItemTemplate>
       </asp:TemplateField>
       <asp:TemplateField HeaderText="Image" >
       <ItemTemplate>
       <asp:Image ID="Image1" runat="server" border="0" name="bannerimage" style="width:70px; height:70px;" ImageUrl='<%# "/Upload/" + Convert.ToString(Eval("Image")) %>'  /> 
       </ItemTemplate>
       </asp:TemplateField>
       <asp:TemplateField HeaderText="Action" >
       <ItemTemplate>
       <!--<a href="" data-toggle="tooltip" title="" class="btn btn-xs btn-success" data-original-title="Edit" id="editbtn" ><i class="fa fa-edit"></i></a>
       <a href=" " data-toggle="tooltip" title="" class="btn btn-xs btn-danger" data-original-title="Delete"><i class="fa fa-times"></i></a> -->
            <asp:HyperLink ID="HyperLink1" runat="server" data-toggle="tooltip" title="" class="btn btn-xs btn-success" data-original-title="Edit" CommandName="DoEdit" CommandArgument='<%# Eval("FAQ_ID") %>' ><i class="fa fa-edit"></i></asp:HyperLink>
             <asp:HyperLink ID="HyperLink2" runat="server" data-toggle="tooltip" title="" class="btn btn-xs btn-danger" data-original-title="Delete" CommandName="DoDelete" CommandArgument='<%# Eval("FAQ_ID") %>' ><i class="fa fa-times"></i></asp:HyperLink>
           </ItemTemplate>
       </asp:TemplateField>
    </Columns>
</asp:GridView>

faq.aspx.cs:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)

    int faqID = int.Parse(e.CommandArgument.ToString());
    switch (e.CommandName)
    
        case "doEdit":
            
                int index = Convert.ToInt32(e.CommandArgument);
                TextBox1.Text = GridView1.Rows[index].Cells[1].Text;
                TextBox2.Text = GridView1.Rows[index].Cells[2].Text;
                HiddenField1.Value = GridView1.Rows[index].Cells[0].Text;
                Image3.ImageUrl=
                Button1.Text = "Update";
            
    

在这里我需要图像将被检索并设置为image3 id。请帮我解决这个问题。

【问题讨论】:

您是否尝试过使用“FindControl”? ***.com/questions/1965835/…?您将获得图像控件,并从那里您应该能够获得其 URL 【参考方案1】:

这里是 image3;它不在您的 sn-p 中。请包括它,但如果它在网格中,那么你可以这样做:

var img3 = (Image)GridView1.Rows[index].Cells[X].FindControl("Image3");
img3.ImageUrl = "XYZ";

直接引用仅在容器外部的页面上有效。如果在容器内,则必须使用 FindControl(例如 detailsview.findcontrol),或者如果是可重复列表,则必须从行(或者在网格的情况下,单元格)中使用 FindControl。

【讨论】:

@Brian : 我已经添加你现在可以查看我的帖子了。 应该可以直接参考image3。确保 image3 在设计器文件中。 @Brian:另一个问题我现在无法使用OnRowCommand事件获取任何数据,你能找到解决方案吗? RowCommand 在初始绑定时只有绑定数据。回发后,行的数据项为空。【参考方案2】:

这样获取行索引:

 GridViewRow gvr = (GridViewRow)(((HyperLink)e.CommandSource).NamingContainer);

    int index= gvr.RowIndex; 

//获取图片地址

 string url =  ((Image)gvr.FindControl("Image3")).ImageUrl;    
    Image3.ImageUrl= url;

【讨论】:

以上是关于asp.net中普通超链接如何触发C#事件的主要内容,如果未能解决你的问题,请参考以下文章

c# webBrowser1 模拟点击超链接后,如何获取连接页面的信息(ajax ),需要不弹出窗口

php超链接标签事件都有哪些

div设定onclick后,如何点其中的超链接不触发onclick

怎么实现点击本页面的超链接a,跳到另一个页面,并触发另一个页面的onclick事件

如何触发 JavaScript 事件点击

做一个超链接,点击超链接通过事件触发显示“你好”,用jquery实现事件机制