C# 获取数据列表行详细信息

C# 获取数据列表行详细信息,c#,asp.net,datalist,C#,Asp.net,Datalist,我的数据列表中有以下itemTemplate <ItemTemplate> <asp:LinkButton ID="LinkButton1" CommandName="Select" autopostback="True" runat="server">'<%# Eval("ThreadTitle") %>'</asp:LinkButton> </ItemTemplate> 我希望通过单

我的数据列表中有以下itemTemplate

          <ItemTemplate>
 <asp:LinkButton ID="LinkButton1" CommandName="Select" autopostback="True" runat="server">'<%# Eval("ThreadTitle") %>'</asp:LinkButton>

            </ItemTemplate>
我希望通过单击datalist中的行并从所选的特定行获取ThreadTitle参数,在其中一个事件处理程序中获取与所选行关联的ThreadID

我怎样才能完成这项任务

我基本上想要检索我输入到sqldatasource的sql参数,这些参数与单击的特定行相关

我自己解决的:

    protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
    LinkButton link = (LinkButton)e.Item.FindControl("LinkButton1");
    string threadTitle = link.Text;

    string recordID = (DataList1.DataKeys[e.Item.ItemIndex]).ToString();
    string special = "";
}
enter code here

我认为,以下代码将起作用:

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e) {
    DataRowView rowView = e.Item.DataItem as DataRowView;
    int threadID = Convert.ToInt32(rowView["ThreadsID"]);
}


我认为,以下代码将起作用:

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e) {
    DataRowView rowView = e.Item.DataItem as DataRowView;
    int threadID = Convert.ToInt32(rowView["ThreadsID"]);
}

你可以这样做

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
    // Will give you current data key value
    Int32 threadID = Convert.ToInt32(e.CommandArgument); 
    // if you want value of your control
    (ControlTypd)e.Item.FindControl("ControldId")
}
你可以这样做

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
    // Will give you current data key value
    Int32 threadID = Convert.ToInt32(e.CommandArgument); 
    // if you want value of your control
    (ControlTypd)e.Item.FindControl("ControldId")
}

每次单击item linkbutton时,该行为null。将引发Nullerexception。另外,如何检索与该行关联的DatakeyName=ThreadID?请在int ThreadID行设置断点,并在QuickWatch窗口中检查e.item.DataItem属性的类型。它是什么?选定的INX已更改。。六羟甲基三聚氰胺六甲醚。。我会试试,一分钟不..行视图为空。。我认为这不是做这件事的方法。。我检索到的ThreadTitle如下:LinkButton link=LinkButtone.Item.FindControlLinkButton2;请检查DataList1.SelectedItem.DataItem属性的类型。这是什么?每次单击item linkbutton时,该行都为null。将引发Nullerexception。另外,如何检索与该行关联的DatakeyName=ThreadID?请在int ThreadID行设置断点,并在QuickWatch窗口中检查e.item.DataItem属性的类型。它是什么?选定的INX已更改。。六羟甲基三聚氰胺六甲醚。。我会试试,一分钟不..行视图为空。。我认为这不是做这件事的方法。。我检索到的ThreadTitle如下:LinkButton link=LinkButtone.Item.FindControlLinkButton2;请检查DataList1.SelectedItem.DataItem属性的类型。这是什么?e.CommandArgument引发格式异常。我将其设置为我的dataKeyField…ThreadsID。我希望它成为我使用的每一行的主键…穆罕默德,我解决了它..这是上面的解决方案..更新了我的答案e.CommandArgument引发格式异常。我将其设置为我的dataKeyField…ThreadsID。我希望它成为我使用的每一行的主键……穆罕默德,我解决了它……这是上面的解决方案……更新了我的答案
protected void DataList1_SelectedIndexChanged(object sender, EventArgs e) {
        DataRowView rowView = DataList1.SelectedItem.DataItem as DataRowView;
        int threadID = Convert.ToInt32(rowView["ThreadsID"]);
    }
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
    // Will give you current data key value
    Int32 threadID = Convert.ToInt32(e.CommandArgument); 
    // if you want value of your control
    (ControlTypd)e.Item.FindControl("ControldId")
}