我在obout網格上的模板列中有一個下拉列表。目前我正在使用sqldatasource填充頁面加載下拉列表。但是,我現在必須根據某個列的值加載下拉列表。例如:如果狀態= 1,我與涉及到的狀態1.在網格模板列中填充DropDownList列表
<obout:Column ID="colStatus" DataField="wf_status_id" Align="center" HeaderText="Status" HeaderAlign="center" Width="130px" Wrap="true" runat="server" AllowGroupBy="true" AllowFilter="true">
<TemplateSettings EditTemplateId="tmpStatusIDEdit" TemplateId="tmpStatusID" />
</obout:Column>
<obout:GridTemplate runat="server" ID="tmpStatusID" >
<Template>
<%# Container.DataItem["Status"]%>
</Template>
</obout:GridTemplate>
<obout:GridTemplate runat="server" ID="tmpStatusIDEdit" ControlID="ddlStatus" ControlPropertyName="value">
<Template>
<obout:OboutDropDownList runat="server" ID="ddlStatus" Width="100%" Height="200" MenuWidth="215" DataSourceID="sdsStatus" DataTextField="wf_status_text" DataValueField="wf_status_id" />
</Template>
</obout:GridTemplate>
public void OnGridRowDataBound(object sender, Obout.Grid.GridRowEventArgs e)
{
if (e.Row.RowType == Obout.Grid.GridRowType.DataRow)
{
DropDownList ddlStatus = new DropDownList();
ddlStatus = (DropDownList)e.Row.FindControl("ddlStatus");
//LOAD DROP DOWN HERE//
}
}
當我嘗試執行此代碼可用選項的列表填充下拉列表,它表明ddlStatus爲空每次。我嘗試了很多方法來獲得這個,並由於某種原因似乎無法得到它。也許另一組眼睛或其他想法可以幫助我。請讓我知道我做錯了什麼。謝謝你的時間提前
UPDATE:DataBound事件CODE
<obout:OboutDropDownList runat="server" ID="ddlStatus" Width="100%" Height="200" MenuWidth="215" OnDataBinding="ddlStatus_DataBinding" DataSourceID="sdsStatus" DataTextField="wf_status_text" DataValueField="wf_status_id" />
protected void ddlStatus_DataBinding(object sender, EventArgs e)
{
Obout.Interface.OboutDropDownList ddl = (Obout.Interface.OboutDropDownList)(sender);
string statusID = Eval("wf_status_id").ToString();
}
我添加了數據源,因爲我沒有看到另一種方式擁有數據綁定事件觸發。
我的問題是我需要抓住以填充從第一列中的值僅允許使用列表項目的下拉列表。如何在DataBinding中獲取值? – Alex 2014-09-10 06:08:28
@Alex非常簡單,在DataBinding事件中,您可以執行一個'Eval'來從當前綁定的行數據中獲取值。示例: 'string yourColumnValue = Eval(「YourColumnName」)。ToString()' – Kelsey 2014-09-10 13:45:40
非常感謝您的幫助Kelsey !! – Alex 2014-09-10 14:33:16