2016-11-22 112 views
0

我正在尝试创建一个“时钟输入/输出站点”,其中一个功能是用户编辑旧时钟输入/输出。我添加了一个包含2个值“IND”和“UD”的下拉菜单。我如何获取这些值,并将它们发送给我的“CHECKIN”sql值。
我希望你知道我试图解释什么。在gridview中从下拉列表中获取数值

这是什么样子:

enter image description here

下拉:

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:DropDownList ID="DropDownList2" runat="server" 
      OnSelectedIndexChanged="DropDownList2_SelectedIndexChanged"> 
     <asp:ListItem Selected="True">Ind</asp:ListItem> 
     <asp:ListItem Value="UD">Ud</asp:ListItem> 
     </asp:DropDownList> 
    </ItemTemplate> 
</asp:TemplateField> 

什么香港专业教育学院的尝试:

protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    GridViewRow row = GridView1.SelectedRow; 
    string val = row.Cells[3].ToString(); 
    SqlDataSource1.SelectParameters.Add("CHECKEDIN", val); 
} 

和藏汉为:

protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DropDownList ddl = (DropDownList)GridView1.FindControl("DropDownList2"); 
    string val = ddl.SelectedValue; 
    SqlDataSource1.SelectParameters.Add("CHECKEDIN", val); 
} 

这两个回报“空”寿

+0

Wihout尝试它,我肯定会认为第二个例子中,铸塑DropDownList的,是可行的。是否有可能重新加载页面并清除所选值(检查页面回发?)? –

回答

0

使用RowDataBoundGridView事件。

代码

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow 
       && GridView1.EditIndex == e.Row.RowIndex) 
    { 
     DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList2"); 
     string val = ddl.SelectedValue.ToString(); 
     SqlDataSource1.SelectParameters.Add("CHECKEDIN", val); 
    } 
} 
+0

我没有得到这个工作。仍然返回null –

+0

添加一个“断点”并检查 – Wanderer

0

的,就可以把发送回一个下拉列表,并获得选择的值

DropDownList dropDownList = sender as DropDownList; 
string val = dropDownList.SelectedValue; 

但你怎么会知道用这种方法将DropDownList属于哪一行至?

你可以使用这个技巧,就像滥用CSS类来获得正确的行号一样。

<asp:DropDownList ID="DropDownList2" runat="server" OnSelectedIndexChanged="DropDownList2_SelectedIndexChanged" AutoPostBack="true" CssClass='<%# Container.DataItemIndex %>'> 

并获得代码后面的行号。

int rowNumber = Convert.ToInt32(dropDownList.CssClass); 
+0

我看到你在做什么,但我该如何实现?所有在“onselectedindexchanged”? –

相关问题