Don't know if the following solution will work for you, but want to share how I did something similar.
I recently did something similar but used the DropDown control from the ASP.Net Ajax Toolkit. What I did was to create user control and added a property to the control that will hold the id “key” of the row in my GridView (I didn’t use a DataList, but the similar solution can be used). I then bind the field that has the “id” from my data-source to the control’s property. When I select an option from my DropDown (The ASP.Net Ajax DropDown control will popup a specified Panel with some LinkButtons for the options), I could get the id of the current row and use it to modify the data. In your case you could bind the RowIndex or also a “key”.
Note: In my solution I didn’t want to use the RowCommand event because the DropDown will display a Panel where I have LinkButtons, and I wanted to use the click event of the LinkButton to perform different actions etc.
/Fredrik Normén -
fredrikn @ twitterASPInsider
Microsoft MVP, MCSD, MCAD, MCT
ASPInsidersMy Blog