首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

DataList,DropDownList,批改

2013-03-01 
DataList,DropDownList,修改DataList在编辑时,根据ID绑定DropDownList,然后修改asp:DataList IDrepList

DataList,DropDownList,修改
DataList,DropDownList,批改
DataList在编辑时,根据ID绑定DropDownList,然后修改


<asp:DataList ID="repList" runat="server" Width="98%" 
           onitemcommand="repList_ItemCommand" DataKeyField="CART_ID"
           oncancelcommand="repList_CancelCommand" oneditcommand="repList_EditCommand" 
           onupdatecommand="repList_UpdateCommand">
           <HeaderTemplate>
           <table width="98%" border="0" align="center" cellpadding="0" cellspacing="0" class="cpborder">
            <tr>
               <td width="58%" align="center" background="../../images/index_25.jpg" height="28">商品信息</td>
               <td width="18%" align="center" background="../../images/index_25.jpg">购买价格</td>
               <td width="8%"  align="center" background="../../images/index_25.jpg">数量</td>
               <td width="16%" align="center" background="../../images/index_25.jpg">操作</td>
            </tr>
           </HeaderTemplate>
           <ItemTemplate>
           
               <tr>
                 <td height="90" align="center" width="58%">
                    <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
                      <tr>
                         <td width="35%" rowspan="2" align="center">
                          <img width="46px" height="47px" class="cpborder" src="../../UpLoadPic/ProductPic/<%# Eval("PIC_SRC")%>">
                         </td>
                         <td width="65%" align="left">
                           <%# Eval("NAME")%>
                           <asp:Label ID="Label1" runat="server" Text='<%# Eval("ID") %>' Visible="False"></asp:Label>


                         </td>
                      </tr>
                      <tr>
                         <td align="left" class="qianse">
                           <%# Eval("SIZES")%> &nbsp;
                           <%# Eval("COLOR")%>
                         </td>
                      </tr>
                   </table>
                 </td>
                 <td align="center" width="18%">
                    <span class="redn"><strong>¥<%# Eval("PRICE")%></strong></span></td>       
                 <td align="center" width="8%"> 
                    <%# Eval("AMOUNT")%>
                 </td>
                 <td align="center" width="16%">
                   <asp:LinkButton ID="LinkButton1" runat="server" CommandName="Edit" >修改</asp:LinkButton>                    
                   <asp:LinkButton ID="lbtnDel" runat="server" CommandName="del" CommandArgument='<%# Eval("CART_ID") %>'
                                            OnClientClick="return(confirm('确定删除该项数据吗?'))">删除</asp:LinkButton>                         
                 </td>
               </tr>
           </ItemTemplate>


           <EditItemTemplate>
           <tr>
                 <td height="90" align="center" width="58%">
                    <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
                      <tr>
                         <td width="35%" rowspan="2" align="center">
                          <img width="46px" height="47px" class="cpborder" src="../../UpLoadPic/ProductPic/<%# Eval("PIC_SRC")%>">
                         </td>
                         <td width="65%" align="left">
                           <%# Eval("NAME")%>
                           <asp:Label ID="Label1" runat="server" Text='<%# Eval("ID") %>' Visible="False"></asp:Label>
                         </td>
                      </tr>
                      <tr>
                         <td align="left" class="qianse">
                             <asp:DropDownList ID="DropDownList1"  runat="server">
                             </asp:DropDownList>
                           <%# Eval("COLOR")%>
                         </td>
                      </tr>
                   </table>
                 </td>
                 <td align="center" width="18%">


                    <span class="redn"><strong>¥<%# Eval("PRICE")%></strong></span></td>       
                 <td align="center" width="8%"> 
                    <asp:TextBox ID="txtAmout" Text='<%#Eval("AMOUNT")%>' Width="30px" runat="server"></asp:TextBox>
                 </td>
                 <td align="center" width="16%">
                   <asp:LinkButton ID="LinkButton1" Text="更新" CommandName="Update" runat="server"></asp:LinkButton>
                   <asp:LinkButton ID="LinkButton2" Text="取消" CommandName="Cancel" runat="server"></asp:LinkButton>
                   <asp:LinkButton ID="lbtnDel" runat="server" CommandName="del" CommandArgument='<%# Eval("CART_ID") %>'
                                            OnClientClick="return(confirm('确定删除该项数据吗?'))">删除</asp:LinkButton>
                 </td>
               </tr>
           </EditItemTemplate>
       </asp:DataList>




//取消
 protected void repList_CancelCommand(object source, DataListCommandEventArgs e)
        {
            repList.EditItemIndex = -1;
            InitRpt();//绑定数据
        }

//更新
protected void repList_UpdateCommand(object source, DataListCommandEventArgs e)
        {
        }

//修改
protected void repList_EditCommand(object source, DataListCommandEventArgs e)
        {
            string ID = ((Label)e.Item.FindControl("Label1")).Text.Trim();
            DataSet dr = SizeBLL.GetList(ID);//根据ID得到数据
            DropDownList ddl = (DropDownList)e.Item.FindControl("DropDownList1");
            ddl.DataSource = dr;
            ddl.DataBind();
            repList.EditItemIndex = e.Item.ItemIndex;


            InitRpt();//绑定数据
        }



想法是在点修改的时候,根据ID得到数据,绑定到DropDownList1,可以选择然后更新,现在是有错误点修改“未将对象引用到对象实例”

不知道是我哪里写错了,或有更好的方法
[解决办法]
断点下去  看下点击更新的时候  错误是错在了哪一行
[解决办法]
  string ID = ((Label)e.Item.FindControl("Label1")).Text.Trim();
            DataSet dr = SizeBLL.GetList(ID);//根据ID得到数据
            DropDownList ddl = (DropDownList)e.Item.FindControl("DropDownList1");
            ddl.DataSource = dr;
            ddl.DataBind();
            repList.EditItemIndex = e.Item.ItemIndex;
            InitRpt();//绑定数据


无非就是这几行可能有错误了,你设置断点看一下是哪里没有找到数据。
另外,一般情况下在找进行查数据的时候都要进行判空的
if(dr!=null)
{
  //dosth
}
[解决办法]
ddl是null吗?
dr里面的table有数据吗?
[解决办法]
因为在加载时,不是编辑状态,这时DropDownList 还未被在创建,

    

protected void repList_EditCommand(object source, DataListCommandEventArgs e)    
    {
           if (e.Item.ItemType == ListItemType.EditItem)
            {
               //加上你的代码
            }
    }

[解决办法]
好吧。
先隐藏diopdownlist用一个lable显示你想要绑定的数据
<tr>               
<td align="left" class="qianse">     
<asp:Label ID="Label1" Text='<%# Eval("id") %>' runat="server"></asp:Label>
<asp:DropDownList ID="DropDownList1"  runat="server"  Visible="false"></asp:DropDownList><%# Eval("COLOR")%></td>
</tr>


protected void repList_EditCommand(object source, DataListCommandEventArgs e)
{
if (e.Item.ItemType == ListItemType.EditItem){
 DropDownList ddl = (DropDownList)e.Item.FindControl("DropDownList1");
//加上这个,点击更新显示dropdownlist   别忘了后面加上你的绑定
lable1.visiable=false;
ddl.visiable=true;
 }    
}

[解决办法]
<asp:DataList ID="DataList1" runat="server" DataSourceID="ObjectDataSource1" >     <ItemTemplate>        
 <asp:TextBox ID="TextBox1" runat="server" Text=' <%#Eval("ID") %>' />         <asp:Button ID="Button1" runat="server" Text="提交" onclick="Button1_Click1" />     </ItemTemplate> </asp:DataList> 





 protected void Button1_Click1(object sender, EventArgs e) {     
Button bt = (Button)sender;     
bt.Text = "id:" + Server.HtmlEncode(((TextBox)bt.FindControl("TextBox1")).Text); 




[解决办法]
已经告诉你了,dr是一个空对象. 你在 SizeBLL.GetList(ID) 这里断点.啥都清楚了

热点排行