2014-12-03 58 views
0

我正在使用C#ASP.NET中的一个项目。我在webform页面中有一个GridView,它从数据库中提取数据。它有三列复选框,部门部门名称DEPTNAMEhyperlink领域,我需要的是,当用户点击DEPTNAME超级链接其DEPTID必须保存到一个字符串,并传递给其他类作为选择department.i的参数很困惑该怎么做!请帮我如何从ASP.NET中的GridView中获取单击的超链接行相邻单元格值C#

我这样做,但它并没有帮助

protected void DepartmentTable_SelectedIndexChanged(object sender, EventArgs e) 
{ 
     string name = DepartmentTable.SelectedRow.Cells[0].Text.ToString(); 
     Departmentlist obj = new Departmentlist(); 
     obj.setDeptid(name); 
} 

HTML标记代码

<asp:GridView ID="DepartmentTable" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" BackColor="#CCCCCC" BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px" CellPadding="4" DataSourceID="SqlDataSource1" Width="814px" CellSpacing="2" ForeColor="Black" DataKeyNames="DeptId" OnSelectedIndexChanged="DepartmentTable_SelectedIndexChanged"> 
       <Columns> 
        <asp:TemplateField> 
         <ItemTemplate> 
          <asp:CheckBox ID="CheckBox1" runat="server" /> 
         </ItemTemplate> 
        </asp:TemplateField> 
        <asp:BoundField DataField="DeptId" HeaderText="DeptId" SortExpression="DeptId" ReadOnly="True" InsertVisible="False" /> 
        <asp:TemplateField HeaderText="DeptName"> 
         <ItemTemplate> 
          <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("DeptId", "Departmentlist.aspx?DeptId={0}") %>' Text='<%# Eval("DeptName") %>'></asp:HyperLink> 
         </ItemTemplate> 
        </asp:TemplateField> 
       </Columns> 
       <FooterStyle BackColor="#CCCCCC" /> 
       <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" /> 
       <PagerStyle ForeColor="Black" HorizontalAlign="Left" BackColor="#CCCCCC" /> 
       <RowStyle BackColor="White" /> 
       <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" /> 
       <SortedAscendingCellStyle BackColor="#F1F1F1" /> 
       <SortedAscendingHeaderStyle BackColor="Gray" /> 
       <SortedDescendingCellStyle BackColor="#CAC9C9" /> 
       <SortedDescendingHeaderStyle BackColor="#383838" /> 
      </asp:GridView> 
+0

你可以发布你的标记代码吗? – Sam 2014-12-03 22:14:36

+0

是啊山姆现在看看我已经添加了,请帮助我 – Ali 2014-12-04 06:03:31

+0

您是否需要在SelectedIndexChanged事件中设置Departmentlist obj?您已经将DeptId作为QueryString参数传递。为什么不能在Departmentlist.aspx页面的Page_Load事件中使用它? – Sam 2014-12-05 03:17:11

回答

0

你需要转换控制为超链接,并得到thje超链接控件的文本。例如:

string name =((HyperLink)DepartmentTable.SelectedRow.Cells [0] .Controls [0]).Text;

+0

亚伦感谢您的回复,但e.RowIndex给出的错误是System.EventArgs确实包含e.RowIndex的定义并且没有扩展方法'RowIndex'可以发现接受System.EventArgs类型的第一个参数 – Ali 2014-12-03 21:27:19

+0

它是行的一部分命令事件。我认为这就是你正在使用的:http://msdn.microsoft.com/en-us/library/bb907626%28v=vs.100%29.aspx尝试我刚刚做的编辑。 – Aaron 2014-12-03 21:44:11

相关问题