Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从隐藏的代码中单击按钮

从隐藏的代码中单击按钮
EN

Stack Overflow用户
提问于 2013-02-07 13:29:40
回答 1查看 295关注 0票数 0

我有一个列出工具和访问值的网格视图。为了进行编辑,我在每一行上都有一个编辑图像按钮。我有一个OnRowBound方法,它为每个按钮分配一个OnClick属性,这样我就可以知道需要编辑哪条记录。代码是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    Protected Sub ChangeFirstRowIcon(ByVal Sender As Object, ByVal e As GridViewRowEventArgs) Handles gv_AccessRights.RowDataBound

    'This sub fires on each gridview row created...
    'It first checks that the row is a data row (as opposed to Header, Footer etc.)
    'If ib_Edit is true then change add an attribut to button with aid, tid and ac values attached.

    If e.Row.RowType = DataControlRowType.DataRow Then

        Dim ib_Edit As ImageButton = e.Row.FindControl("ib_Edit")
        Dim lb_AccessID As Label = e.Row.FindControl("lb_AccessID")
        Dim hd_ToolID As HiddenField = e.Row.FindControl("hd_ToolID")
        Dim hd_AccessCode As HiddenField = e.Row.FindControl("hd_AccessCode")

        If ib_Edit IsNot Nothing Then
            ib_Edit.Attributes.Add("onClick", "proxyClick('" & lb_AccessID.Text & "', '" & hd_ToolID.Value & "', '" & hd_AccessCode.Value & "')")
        End If

    End If

End Sub

我正在使用一个隐藏的代理按钮来显示一个模式弹出窗口,用户将使用它来编辑记录……(相同的弹出窗口将用于添加新的访问记录...但这将在以后出现)。因此,在将我的详细信息传递给proxyClick之后,我在模式弹出窗口中设置了控件的值。javascript是....

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <script type="text/javascript">
    function proxyClick(aid, tid, ac) {
        document.getElementById('hd_AccessID').value = aid;
        document.getElementById('hd_ToolIDMod').value = tid;
        document.getElementById('hd_AccessCodeMod').value = ac;
        document.getElementById('but_SetModalDetails').click();
    }
    </script>

作为参考,标记的主要部分是...

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<table class="border">
    <tr>
        <td>
            <asp:Button ID="but_SetModalDetails" runat="server" Style="display: none" Text="Set modal details" ClientIDMode="Static" UseSubmitBehavior="true" />
            <asp:Button ID="but_HiddenProxy" runat="server" Style="display: none" Text="Hidden Proxy Button for Modal Popup" ClientIDMode="Static" />
        </td>
        <td class="rt">
        <asp:Button ID="but_AddTool" runat="server" AccessKey="A" CssClass="butGreen" Text="Add Tool" ToolTip="Add Tool - Alt A" />
        </td>
    </tr>
</table>

<asp:ModalPopupExtender ID="mpx_AddEditAccess" runat="server" CancelControlID="but_Cancel"
    BehaviorID="pn_AddEditAccess" PopupControlID="pn_AddEditAccess" TargetControlID="but_HiddenProxy"
    BackgroundCssClass="modalBackground" />
<asp:Panel ID="pn_AddEditAccess" runat="server" Width="500px" CssClass="modalPopup"
    Style="display: block">
    <div class="box">
        <h2>
            <asp:Label ID="lb_ModTitle" runat="server"></asp:Label>
        </h2>
        <asp:HiddenField ID="hd_AccessID" runat="server" ClientIDMode="Static"></asp:HiddenField>
        <div class="block">
            <asp:UpdatePanel ID="up_Access" runat="server" UpdateMode="Always">
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="ddl_ToolName" EventName="SelectedIndexChanged" />
                </Triggers>
                <ContentTemplate>
                    <table>
                        <tr>
                            <th class="p66 rt">
                                Tool Name:&nbsp;
                            </th>
                            <td class="p66">
                                <asp:HiddenField ID="hd_ToolIDMod" runat="server" ClientIDMode="Static" />
                                <asp:DropDownList ID="ddl_ToolName" runat="server" AutoPostBack="true" AppendDataBoundItems="True"
                                    DataSourceID="SqlDS_Tools" DataTextField="ToolName" DataValueField="ToolID" OnSelectedIndexChanged="ddl_ToolName_SIC">
                                    <asp:ListItem Text="Please Select..." Value="0"></asp:ListItem>
                                </asp:DropDownList>
                                <asp:SqlDataSource ID="SqlDS_Tools" runat="server" ConnectionString="<%$ ConnectionStrings:ToolsConnString %>"
                                    SelectCommand="SELECT [ToolID], [ToolName] FROM [tbl_Tools] WHERE ([Redundant] = @Redundant)">
                                    <SelectParameters>
                                        <asp:Parameter DefaultValue="False" Name="Redundant" Type="Boolean" />
                                    </SelectParameters>
                                </asp:SqlDataSource>
                                <asp:RequiredFieldValidator ID="rfv_ddl_ToolName" runat="server" ControlToValidate="ddl_ToolName"
                                    CssClass="error" Display="Dynamic" ErrorMessage="Please Select Tool Name" InitialValue="0">
                                </asp:RequiredFieldValidator>
                            </td>
                        </tr>
                        <tr>
                            <th class="p66 rt">
                                Access Rights:&nbsp;
                            </th>
                            <td class="p66">
                                <asp:HiddenField ID="hd_AccessCodeMod" runat="server" ClientIDMode="Static" />
                                <asp:DropDownList ID="ddl_AccessCode" runat="server" Enabled="false">
                                    <asp:ListItem Text="No Access" Value="0"></asp:ListItem>
                                </asp:DropDownList>
                            </td>
                        </tr>
                        <tr>
                            <td class="p66">
                                <asp:Button ID="but_Cancel" runat="server" Text="Cancel" />
                            </td>
                            <td class="p66 rt">
                                <asp:Button ID="but_Save" runat="server" Text="Save" />
                            </td>
                        </tr>
                    </table>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    </div>
</asp:Panel>

如您所见,我实现了两个隐藏按钮but_SetModalDetails和but_HiddenProxy。but_SetModalDetails有一些代码,可以设置两个下拉列表(一个从数据源填充,另一个根据第一个的值动态填充。代码的背后是...

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    Protected Sub but_SetModalDetails_Click(ByVal sender As Object, ByVal e As EventArgs) Handles but_SetModalDetails.Click

    If hd_AccessID.Value = "0" Then
        lb_ModTitle.Text = "Assigning Access Rights to:"
        ddl_ToolName.SelectedIndex = 0
        ddl_AccessCode.SelectedIndex = 0
        ddl_AccessCode.Enabled = False
    Else
        lb_ModTitle.Text = "Edit Access Rights to:"
        ddl_ToolName.SelectedValue = hd_ToolIDMod.Value
        ddl_ToolName.Enabled = False
        SqlStr = "SELECT AccessID AS ddlValue, AccessText as ddlText FROM tbl_AccessCodes WHERE ToolID = " & hd_ToolIDMod.Value
        PopulateDDLvalue(ddl_AccessCode, SqlStr)
        ddl_AccessCode.SelectedValue = hd_AccessCodeMod.Value
        ddl_AccessCode.Enabled = True
    End If

    'NOW I NEED TO SIMULATE but_HiddenProxy Click

End Sub

正如您在最后看到的,我需要模拟单击but_HiddenProxy,以便modalPopup显示为填充了正确的数据。

有什么想法吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-07 16:32:27

在那之后..。我可以在代码背后做所有的事情...

我只需要一个隐藏的按钮but_HiddenProxy。

在网格视图中,我没有为每个编辑图像按钮设置一个编辑属性,而是设置了一个命令名'AccessEdit‘(不要使用’onClick‘)。然后我有了一个处理gridview.RowCommand事件的方法。这找到了我在所选行上使用findControl所需的各种信息。然后使用这些值填充弹出窗口中的下拉列表,然后使用show命令使弹出窗口可见。

有一点让我困惑了一段时间,那就是为什么当点击图片按钮时,我的RowCommand没有触发。我忘记了我在模式中有验证,它停止了RowCommand的执行。我在imagebutton中插入了一个CausesValidation="false“,一切正常。

说到用锤子敲坚果!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14752306

复制
相关文章
窗体显示
这个是可以点击的 主要是没有那个事件绑定所以没有啥事只有点击之后啥都没有啦 我每一部分都用的一个主程序 所以看着会比较乱但是不影响复习 源代码奉上
用户8447427
2022/08/18
1.4K0
窗体显示
事件_窗体传值
本实项目创建步骤记录: 1、创建两个Webform窗体 2、实现功能::在form1窗体中点击按钮---->将文本框中的值传递到,From2中文本框中。 3、用事件来实现;跟据以前学的知识,知道,事件的核心其实就是委托; 1)、在Form1中声明一个无返回值类型void的委托 Mydel public delegate void Mydel(); 2)、在单击事件方法前声明一个 委托字段 public event Mydel _mdl; 4、事件定义完毕! 5、单击按钮后,显示窗体Form2,同时对这个按钮注册一个事件 1)、this._mdl += 输入完毕后,, 通常是点击 Tab键进行事件的补全;; 这里不需要。。这里 使用的是new Mydel( );方便在这里进行传递方法名字f2.SetTxt; 2)、怎么样将一种的值传递过道Form2中 3)、假设这里有一方法 SetTxt() 就是存在Form2这个类中。。就是用来改变Form2文本 框中的内容的。 4)、其实这个方法SetTxt()就是存在,Form2中的。。那么,这就需要手动的写这个方法 在Form2类中。 5)、这个SetTxt()方法是通过Form1中的事件来调用方法名字(f2.SetTxt)。也可以说是 委托来调用的,,。。。。 6)、使用事件也是需要判断是否为null的,, if(this._mdl!=null) { this._mdl(); //不为null就调用。。。简记:说是调用,就是在mdl后边加上一对 () } 7)、当你写方法f2.SetTxt的时候,有错误。。为什么呢?因为你定义的委托Mydel中没有参 数。但是你这里用了参数 "f2.SetTxt" this._mdl+=new Mydel(f2.SetTxt); 8)、所以返回委托定义的地方,添加上 参数 string name 9)、F6生成成功的! 6、如何传值呢? 7、可以把Text.Box1.Text作为参数放到this._mdl() if(this._mdl!=null) { this._mdl(Text.Box1.Text); //就是对f2.SetTxt()赋值了 } 8、此时报错了。为什么,因为在Form2中的方法SetTxt()并没有声明参数,所以要对Form2中的方法 。进行SetTxt()的变量申明一个字符串的变量; public void SetTxt(string name); 9、接着,在Form2这个public void SetTxt(string name);方法下进行函数功能的实现 public void SetTxt(string name) { textBox1.Text=name; }
静心物语313
2020/03/24
1.1K0
[C#] winform 子窗体向父窗体传值
父窗框mainForm;子窗体childForm,利用事件进行传值 在子窗体中的操作:
静默虚空
2022/05/07
2.2K0
事件_窗体传值(使用系统自带的委托)
本实验的目的:利用系统自带的EventHandler 委托。模仿.netFrame系统的委托是如何实现功能的;
静心物语313
2020/03/24
6310
winform中使用委托进行窗体之间的传值
一、传统的方式 创建一个公共数据资源类,用于存储窗体2的TextBox的值: public class ComValue { public static string Txtvalue { get; set; } } 窗体1的代码: private void button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2();
指尖改变世界
2018/08/31
2.1K0
winform中使用委托进行窗体之间的传值
设置WPF窗体全屏显示:
//全屏代码: private void Window_Loaded(object sender, RoutedEventArgs e) { // 设置全屏 this.WindowState = System.Windows.WindowState.Normal; this.WindowStyle = System.Windows.WindowStyle.None; this.ResizeMode = System.Windows.ResizeMode.NoResize;
hbbliyong
2018/03/05
3.9K0
ModalPopupExtender用法示例
aspx页面 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Test_Default" %> <%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit
菩提树下的杨过
2018/01/22
6580
iframe怎么将参数传递给vue 父组件
在子页面的iframe中想将参数传递给Vue父组件,可以使用postMessage()方法将数据发送给父窗口。父组件可以通过监听message事件来接收并处理这些数据。
王小婷
2023/08/10
1.4K0
rsyslog将日志记录于MySQL中并web显示
rsyslog将日志记录于MySQL中 ABC三台机器 A web显示 B 建数据库 C 日志文件 按编号顺序执行 B机器 (1) 准备MySQL Server 并启动 yum install mariadb-server (3) 为rsyslog创建数据库及表; [root@centos7 ~]#mysql >createDB.sql 或者 [root@centos7 ~]#mysql MariaDB [(none)]> source createDB.sql (4) 授权
咻一咻
2020/05/29
1.4K0
用户窗体示例:工作表数据与用户窗体的交互
好的网站是非常优秀的学习资源,认真研究其分享的知识是我们快速提高水平的方法之一。这个示例仍然来自于thesmallman.com,演示了用户窗体如何与工作表中的数据进行交互:如何使用Excel工作表中的数据填充用户窗体,并将编辑后的数据发送回工作表;并且在这个例中,只需在用户窗体中输入一个关键字,然后单击回车键将自动填充用户窗体。
fanjy
2022/11/16
1.4K0
用户窗体示例:工作表数据与用户窗体的交互
golang版本sdl2显示窗体
go用syscall调用sdl2,在win10 x64上没问题,其他系统不敢保证。
福大大架构师每日一题
2023/06/08
2840
golang版本sdl2显示窗体
将多个属性传递给 Vue 组件的几种方式
所有使用基于组件的体系结构(如Vue和React)的开发人员都知道,创建可重用组件是很困难的,而且大多数情况下,最终会通过传入大量的属性,以便从外部更容易地控制和自定义组件。这并不坏,但是传递大量属性确实会变得有点麻烦和丑陋。
前端小智@大迁世界
2020/05/11
1.9K0
如何在Linux中使用管道将命令的输出传递给其他命令?
在Linux中,管道使用竖线符号 | 表示,它位于两个命令之间。管道的基本语法如下:
网络技术联盟站
2023/09/06
1.5K0
如何在Linux中使用管道将命令的输出传递给其他命令?
如何在Linux中使用管道将命令的输出传递给其他命令?
在Linux系统中,管道(Pipeline)是一种强大的工具,它允许将一个命令的输出作为另一个命令的输入。通过管道,我们可以将多个命令串联在一起,实现数据的流动和处理。本文将详细介绍如何在Linux中使用管道将命令的输出传递给其他命令,并提供一些常见的使用示例。
网络技术联盟站
2023/06/14
1.4K0
如何在Linux中使用管道将命令的输出传递给其他命令?
C#将子窗体填充到父窗体的panel中
这里此窗体为lvlv_CauseForm 窗体,new一个窗体对象cf后,进行填充,代码如下:
恋喵大鲤鱼
2018/08/03
3.2K0
golang版本sdl2显示窗体
go用syscall调用sdl2,在win10 x64上没问题,其他系统不敢保证。
福大大架构师每日一题
2022/06/14
6570
golang版本sdl2显示窗体
Serilog高级玩法之用Serilog记录所选终结点附加属性
这是该系列的第二篇文章:在ASP.NET Core 3.0中使用Serilog.AspNetCore。
依乐祝
2020/02/14
1.7K0
Serilog高级玩法之用Serilog记录所选终结点附加属性
如何将多个参数传递给 React 中的 onChange?
在 React 中,一些 HTML 元素,比如 input 和 textarea,具有 onChange 事件。onChange 事件是一个非常有用、非常常见的事件,用于捕获输入框中的文本变化。有时候,我们需要将多个参数同时传递给 onChange 事件处理函数,在本文中,我们将介绍如何实现这一目标。
网络技术联盟站
2023/06/07
2.7K0
winfrom向窗体中拖放图片并显示
首先要设置窗体的AllowDrop属性为true。然后在窗体的DragEnter事件中添加如下代码:调用自定义的显示图片的方法。
跟着阿笨一起玩NET
2018/09/19
9290
C# WPF MVVM模式下在主窗体显示子窗体并获取结果
在winform中打开一个新的子窗体很简单,直接实例化窗体并show一下就可以:
用户9127601
2021/11/01
1.8K0

相似问题

如何使用所选记录打开窗体?

11

将所选记录id传递给href

22

将Python对象传递给C,然后再回传

10

显示所选记录

30

ASP.NET将函数返回值从modalpopupextender传递给主窗体

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文