【问题标题】:How to call function from button located in GridView?如何从位于 GridView 中的按钮调用函数?
【发布时间】:2011-06-15 13:05:30
【问题描述】:

我的页面上有一个 GridView,该视图的单列由按钮组成。单击这些按钮时,我希望调用一个位于页面代码后面的方法。我试过了,按钮的 OnClick 和 GridView 的 OnRowCommand。但是,我仍然无法从页面后面的代码中调用该函数。

这是我的 GridView。

<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" 
    CssClass="formx2" AutoGenerateColumns="False" DataKeyNames="companyName"  >
    <Columns>
        <asp:TemplateField HeaderText="Düzenle" SortExpression="companyName" 
            HeaderStyle-CssClass="colDept">      
            <ItemTemplate>
                <asp:Button runat="server" ID="IncreaseButton" Text="Düzenle" 
                    CommandName="Select" CommandArgument="something" 
                    CssClass="accordionHeader" BorderColor ="White" 
                    Onclick="redirect"/>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

还有我的方法背后的代码,

protected void redirect(object sender, EventArgs e)
{
    TextBox1.Text = "test";
}

非常感谢您的帮助,我真的停留在这一点上。

提前致谢。

【问题讨论】:

  • 我相信它是 onRowCommand 而不仅仅是 RowCommand,除非你只是在你的问题中打错字
  • 我试过 OnRowCommand。对不起我的错误。
  • 如果您要在代码隐藏(至少受保护)中添加 OnClick-handler,名称为 redirect 并带有签名 (Object sender, EventArgs e),它肯定会起作用。您是否收到任何 javascript 错误?
  • 完全没有错误。正如您所描述的,我有重定向方法,但它不起作用。它只是刷新页面。
  • 我同意蒂姆·施梅尔特的观点。添加protected void redirect(object sender, EventArgs e)处理onclick事件...

标签: asp.net webforms


【解决方案1】:

类似的东西

<asp:TemplateField HeaderText="Düzenle" SortExpression="companyName" HeaderStyle-CssClass="colDept">
 <ItemTemplate>
   <asp:Button ID="IncreaseButton" runat="server" 
    CommandName="Select" 
    CommandArgument="<%# CType(Container,GridViewRow).RowIndex %>"
     />
 </ItemTemplate> 
</asp:TemplateField>

然后是代码

Protected Sub GridView1_RowCommand(ByVal sender As Object, _
  ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs)
  If (e.CommandName = "Select") Then
    // Retrieve the row index stored in the CommandArgument property.
    Dim index As Integer = Convert.ToInt32(e.CommandArgument)

    // Retrieve the row that contains the button 

    Dim row As GridViewRow = GridView1.Rows(index)

    // Add code here 
  End If
 End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多