2013-08-30 56 views
1

我在數據庫中有一個表。該表包含列名稱Answer_Id和Answer_Content.And,並在datalist.My aspx代碼中顯示Answer_Content代碼如下;我如何獲得在datalist中單擊的id

<asp:DataList ID="datalistcevaplar" runat="server" Width="740px" OnItemCommand="datalistcevaplar_ItemCommand" > 
     <ItemTemplate> 
<div class="divcvpicerik"> 
    <asp:Label ID="lblcvpicerik" runat="server" Text='<%# Eval("Answer_Content") %>'></asp:Label> 
</div> 
</ItemTemplate> 
</asp:DataList> 

現在我得Answer_Id我點擊Answer_Content在datalist.Please幫助

+0

需要更多信息。 Answer_Id在哪裏? –

+1

您點擊_什麼?我沒有看到按鈕。 –

+0

Answer_Id在數據庫的表中。 –

回答

1

你可以做到這一點

<asp:DataList ID="datalistcevaplar" runat="server" Width="740px" OnItemCommand="datalistcevaplar_ItemCommand" DataKeyField="Answer_Id"> 
<ItemTemplate> 
<div class="divcvpicerik"> 
<asp:LinkButton CssClass="lnkcss" ID="lnkDeactive" runat="Server" CommandName="Answer" 
Text='<%# Eval("Answer_Content") %>'></asp:LinkButton> 
</div> 
</ItemTemplate> 
</asp:DataList> 

在此你必須設置DataKeyField,這樣你可以得到的識別碼ItemCommand事件

現在在項目命令事件的datalist這樣做的代碼。

protected void datalistcevaplar_ItemCommand(object source, DataListCommandEventArgs e) 
    { 

     if (e.CommandName.Equals("Answer")) 
     { 
       int AnswerId = Convert.ToInt32(DLUsers.DataKeys[e.Item.ItemIndex].ToString()); 

     }  
    } 

現在使用此代碼,您可以獲取Answer_Id或Datalist的任何Id字段。嘗試這個。

3

Answer_Contentlinkbutton .The代碼高於錯了,它 Answer_content不是一個標籤是一個LinkBut​​ton

您可以使用不可見的Label來存儲ID,那麼很簡單。處理LinkButton的ckick事件並使用它的NamingContainerFindControl

ASPX:

<asp:DataList ID="datalistcevaplar" runat="server" Width="740px" OnItemCommand="datalistcevaplar_ItemCommand" > 
<ItemTemplate> 
    <div class="divcvpicerik"> 
    <asp:Label ID="LblID" Visible="false" runat="server" Text='<%# Eval("Answer_Id") %>'> 
    </asp:Label> 
    <asp:LinkButton id="LnkAnswer" 
     Text='<%# Eval("Answer_Content") %>' 
     OnCick="LnkClicked" 
     runat="server" /> 
    </div> 
</ItemTemplate> 
</asp:DataList> 

代碼隱藏:

protected void LnkClicked(Object sender, EventArgs e) 
{ 
    LinkButton btn = (LinkButton) sender; 
    DataListItem item = (DataListItem) btn.NamingContainer; 
    Label lblId = (Label) item.FindControl("LblID"); 
    string ID = lblId.Text; 
} 

編輯或使用LinkButtonCommandArgument從警備尼利提及。

<asp:LinkButton id="LnkAnswer" 
     Text='<%# Eval("Answer_Content") %>' 
     CommandArgument='<%# Eval("Answer_Id") %>' 
     OnCick="LnkClicked" 
     runat="server" /> 

然後你就可以用這種方式得到它:

protected void LnkClicked(Object sender, EventArgs e) 
{ 
    LinkButton btn = (LinkButton) sender; 
    string ID = btn.CommandArgument; 
} 
+1

他也可以將它綁定到LinkBut​​ton的CommandArgument屬性。避免隱藏的標籤。 –

+0

@GarrisonNeely:好點,編輯我的答案。 –

相關問題