2014-12-03 57 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

相關問題