Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 使Gridview中的整行可单击_Asp.net_Gridview - Fatal编程技术网

Asp.net 使Gridview中的整行可单击

Asp.net 使Gridview中的整行可单击,asp.net,gridview,Asp.net,Gridview,我一直在尝试以下答案: 但我还是有点困惑。回答完这个问题后,现在可以单击我的行了。但是我如何在被点击后实现它来做一些事情呢?目前,我使用一个按钮对每行数据库执行所需的操作: 以下是.aspx代码: <Columns> <asp:ButtonField Text = "Click Me" CommandName = "Clicked" ButtonType = "Button" /> ...other columns stuff </Columns> 现在它工

我一直在尝试以下答案:

但我还是有点困惑。回答完这个问题后,现在可以单击我的行了。但是我如何在被点击后实现它来做一些事情呢?目前,我使用一个按钮对每行数据库执行所需的操作:

以下是.aspx代码:

<Columns>
<asp:ButtonField Text = "Click Me" CommandName = "Clicked" ButtonType = "Button" />
...other columns stuff
</Columns>
现在它工作得很好。但是,我不希望按钮是可点击的,我希望整行都是可点击的。我知道这目前是错误的,但到目前为止,我对代码的理解是:

.aspx代码

   <Columns>
    <asp:TemplateField>
                <ItemTemplate>
                    <asp:LinkButton ID="SelectRow" runat="server" ForeColor="red" CommandName="Clicked"></asp:LinkButton>
                </ItemTemplate>
    </asp:TemplateField>
当我这样做的时候,我得到了一个简单的空指针异常,但是我对e.Row.Attributes不是很熟悉,所以我真的不知道这在哪里失败,以及我需要做什么来添加数据库逻辑


谢谢

如果您已经准备好使用jquery,它会简单得多。比如说,

<asp:GridView rowStyle-CssClass="row" ...
...
<asp:TemplateField>
  <ItemTemplate>
    <asp:LinkButton ID="SelectRow" runat="server" CommandName="Clicked" CssClass="selButton" />   
  </ItemTemplate>
</asp:TemplateField>
最后是java脚本

$(document).ready(function() {
   $('tr.row').click(
      function() {
        // simulate click of select button
        $(this).find('.selButton').click();
      }).hover(
      // add/remove css class to highlight on mouse over/out
      function() { $(this).addClass('row-highlight'); },
      function() { $(this).removeClass('row-highlight'); });
});

如果您已经准备好使用jquery,那么它会简单得多。比如说,

<asp:GridView rowStyle-CssClass="row" ...
...
<asp:TemplateField>
  <ItemTemplate>
    <asp:LinkButton ID="SelectRow" runat="server" CommandName="Clicked" CssClass="selButton" />   
  </ItemTemplate>
</asp:TemplateField>
最后是java脚本

$(document).ready(function() {
   $('tr.row').click(
      function() {
        // simulate click of select button
        $(this).find('.selButton').click();
      }).hover(
      // add/remove css class to highlight on mouse over/out
      function() { $(this).addClass('row-highlight'); },
      function() { $(this).removeClass('row-highlight'); });
});

所以我想出来了,我确信有更好的方法通过jquery或javascript实现它,但我还不太擅长这两种方法

对于我的.aspx文件,对于gridview,我只添加了:

AutoGenerateSelectButton ="true"
在我的C#中,在MsgInbox_SelectedIndexChanged下,我将所有的RowCommand逻辑放在下面

最后,在C#中,在我的Gridview_RowCreated下,我添加了这一行以隐藏Select链接:

e.Row.Cells[0].Style["display"] = "none";

所以我想出来了,我确信有更好的方法通过jquery或javascript实现它,但我还不太擅长这两种方法

对于我的.aspx文件,对于gridview,我只添加了:

AutoGenerateSelectButton ="true"
在我的C#中,在MsgInbox_SelectedIndexChanged下,我将所有的RowCommand逻辑放在下面

最后,在C#中,在我的Gridview_RowCreated下,我添加了这一行以隐藏Select链接:

e.Row.Cells[0].Style["display"] = "none";

哪一行专门抛出异常?什么样的例外?请注意,您应该使用
作为链接按钮
而不是
作为按钮
,因为
选择行
是一个
链接按钮
。哦,太好了!现在我做了一个链接按钮,再也没有错误了。您知道我应该在哪里输入数据库代码的逻辑吗(例如,单击此行并对数据库执行此操作)?现在,当我点击它时,什么都没有发生,因为我不确定在哪里/如何添加代码。谢谢处理GridView的RowCommand事件。具体哪一行引发异常?什么样的例外?请注意,您应该使用
作为链接按钮
而不是
作为按钮
,因为
选择行
是一个
链接按钮
。哦,太好了!现在我做了一个链接按钮,再也没有错误了。您知道我应该在哪里输入数据库代码的逻辑吗(例如,单击此行并对数据库执行此操作)?现在,当我点击它时,什么都没有发生,因为我不确定在哪里/如何添加代码。谢谢处理GridView的RowCommand事件。