Here you go:
ASPX:
<html xmlns="http://www.w3.org/1999/xhtml" mode="hold" /><head runat="server">
<title></title>
<script type="text/javascript">
function buildDropDown(obj) {
var status = obj.options[obj.selectedIndex].value;
var row = obj.parentNode.parentNode;
var rowIndex = row.rowIndex - 1;
var ddlReason = row.cells[1].getElementsByTagName('SELECT')[0];
switch (status) {
case "Ma":
ddlReason.options[0] = new Option("OK", "OK");
ddlReason.options[1] = new Option("Good", "Good");
break;
case "Mi":
ddlReason.options[0] = new Option("Data", "Data");
ddlReason.options[1] = new Option("Resoure", "Resoure");
ddlReason.options[2] = new Option("Time", "Time");
break;
case "Others":
ddlReason.options[0] = new Option("Some Item", "Some Item");
break;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:DropDownList ID="ddlStatus" runat="server" onchange="buildDropDown(this);">
<asp:ListItem></asp:ListItem>
<asp:ListItem Value="Ma">Ma</asp:ListItem>
<asp:ListItem Value="Mi">Mi</asp:ListItem>
<asp:ListItem Value="Others">Others</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:DropDownList ID="ddlReason" runat="server">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</form>
</body>
</html>
CODE BEHIND:
using System;
namespace WebFormDemo
{
public partial class GridView : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack) {
GridView1.DataSource = new object[] { "1","2","3" };
GridView1.DataBind();
}
}
}
}