When we want to add a custom button to a list toolbar we can add it by using a feature.But when we are activating the feature it will be apply to the scope secified, so all the lists present inside the scope will have a button added to it's toolbar. But if we want to add the button to a particular list then we need to specify the content type ID of the list.
To get the content type id of a list we need to follow these steps:
1. go to the list =>Settings=>List Settings=>Advance Settings=>click yes to the allow management content type
=>ok=>Now in the list setting page you will see a content type click the content type =>In the url you will see a value like
"ctype=0x010046759B602A72384BB7F4C50DEA9EE828"
This is the content type id for the list.
2. Now if you want to get it programatically then you can use this one:
oSPWeb.Lists["listname"].ContentTypes[0].Id.ToString();
Now we need to create the feature.xml file :
<?xml version="1.0" encoding="utf-8" ?>
<Feature Id="{0af0c758-9ed9-43c8-aa2f-90a6fe879c9d}"
Title="Custom Menu"
Description="This example shows how you can implement custom menu."
Version="1.0.0.0"
Scope="Web"
Hidden="FALSE"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="Element.xml" />
</ElementManifests>
</Feature>
Here id is the feature id which is a GUID.
Scope is web, which means the feature will be available to all the subsites also
Hidden is false, which means the feature will be visible in the feature list for a site (Where you can activate the feature)